如何忽略错误的插入记录

fansmagic 2009-12-13 10:22:33
大家好,请教一个问题
比如说我现在要往数据库中插入一些记录,其中有一个字段是日期型的
但是我插入的时候,可能某些日期不正确,比如1000-13-33 81:81:00这种。
----
我插入是用的是最简单的方式,用Insert语句
但是当出现这种记录的时候,插入就失败了,程序会停止执行
----
我想问下,有没有办法在出现这种情况的时候,数据库或程序会忽略掉错误,继续执行后面的语句?
谢谢!
...全文
131 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
happinessdepig 2009-12-15
  • 打赏
  • 举报
回复
关注 ...
shabble 2009-12-15
  • 打赏
  • 举报
回复
我觉得还是程序外面用try catch 实现,数据库就让他存数据吧,控制流程和逻辑是外面程序的事
水族杰纶 2009-12-15
  • 打赏
  • 举报
回复
IF OBJECT_ID('TB')IS NOT NULL DROP TABLE TB
GO
CREATE TABLE TB(ID INT IDENTITY,DT DATETIME)
INSERT TB SELECT '2009-12-29' WHERE ISDATE('2009-12-29')=1
INSERT TB SELECT '1000-13-33 81:81:00' WHERE ISDATE('1000-13-33 81:81:00')=1
INSERT TB SELECT '2009-12-11' WHERE ISDATE('2009-12-11')=1
SELECT * FROM TB
/*
ID DT
----------- -----------------------
1 2009-12-29 00:00:00.000
2 2009-12-11 00:00:00.000

(2 個資料列受到影響)
*/
csdyyr 2009-12-15
  • 打赏
  • 举报
回复
case when IsDate(col)=1 then col eles null end
SQL77 2009-12-15
  • 打赏
  • 举报
回复
在程序中捕获TRY CATCH
  • 打赏
  • 举报
回复
判断一下就可以了吗
--小F-- 2009-12-13
  • 打赏
  • 举报
回复
写个事务判断下 不满足条件的回滚
fansmagic 2009-12-13
  • 打赏
  • 举报
回复
难道又变成太监贴了?
高手们,出出主意嘛
fansmagic 2009-12-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xys_777 的回复:]
sql server会根据错误的等级来决定是否继续
[/Quote]

错误等级是可以更改的吗?
、请指点
fansmagic 2009-12-13
  • 打赏
  • 举报
回复
谢谢楼上
可以用程序判断
但是需要插入的数据量比较多,一般都在百万级别
如果每个都进行判断
效率会让人抓狂
永生天地 2009-12-13
  • 打赏
  • 举报
回复
sql server会根据错误的等级来决定是否继续
laker_914 2009-12-13
  • 打赏
  • 举报
回复
这种你用程序做不是很方便吗?

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧