首页 新闻 赞助 找找看

sql server insert 语句,会出现插入不成功,但不报错的情况吗?

0
悬赏园豆:20 [已解决问题] 解决于 2017-04-26 08:44

sql server insert 语句,会出现插入不成功,但不报错的情况吗?

sql
xmj112288的主页 xmj112288 | 初学一级 | 园豆:126
提问于:2017-04-24 17:53
< >
分享
最佳答案
0

有这种可能:
开启事务

insert数据成功

忘记提交

GC 回收事务对象,调用Dispose方法

事务被回滚,insert的值被删除。

----------------------------------------------

这种情况,你可以看自增id是否连续。不连续的话,肯定是事务忘了提交,自动rollback了。

收获园豆:20
刀是什么样的刀 | 小虾三级 |园豆:910 | 2017-04-25 20:36
其他回答(7)
0

这怎么可能,肯定不会

奈何一笑 | 园豆:439 (菜鸟二级) | 2017-04-24 17:57
0

譬如说。多个表insert。没做事物处理;会出现一个表有数据。其他关联表无数据。新手容易留下这种坑

Ctrl` | 园豆:3317 (老鸟四级) | 2017-04-24 18:21

会报错吗?

支持(0) 反对(0) xmj112288 | 园豆:126 (初学一级) | 2017-04-24 18:28

@xmj112288: 不会。当时不会发现有错误。除非你去数据库检查插入数据会看到。

支持(0) 反对(0) Ctrl` | 园豆:3317 (老鸟四级) | 2017-04-26 16:11
0

不会,除非是你事务没提交(导致db没数据,而且卡死后续可能系统相同资源的操作。)

Daniel Cai | 园豆:10424 (专家六级) | 2017-04-24 18:58
0

不会,插入不成功,必然会报错,否则返回受影响行数。

哈哈哈嗝 | 园豆:206 (菜鸟二级) | 2017-04-25 08:26
0

 很可能没有设置主键。

肖恩部落 | 园豆:585 (小虾三级) | 2017-04-25 13:31
0

插入数字的话如果字段位NLL会出现插入成功字段没写入的情况,我之前遇到过。插入前先判断是否为NULL,然后想办法把字段改为0,然后再插入。

飞离地平线 | 园豆:16 (初学一级) | 2017-04-25 16:18
0
-- 插入失败,正常情况下回报异常
-- 如果在插入数据的时候进行了异常处理,异常处理中吃掉异常,就会出现插入失败也不报异常的情况

create
table t1 (id int) go insert into t1 select 'a' /* 消息 245,级别 16,状态 1,第 7 行 在将 varchar 值 'a' 转换成数据类型 int 时失败。 */ begin try insert into t1 select 'a' end try begin catch --catch块中什么也不做,相当于吃掉异常 end catch /* (0 行受影响) 也就是说插入失败,不报异
MSSQL123 | 园豆:206 (菜鸟二级) | 2017-05-12 22:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册