有这种可能:
开启事务
insert数据成功
忘记提交
GC 回收事务对象,调用Dispose方法
事务被回滚,insert的值被删除。
----------------------------------------------
这种情况,你可以看自增id是否连续。不连续的话,肯定是事务忘了提交,自动rollback了。
这怎么可能,肯定不会
譬如说。多个表insert。没做事物处理;会出现一个表有数据。其他关联表无数据。新手容易留下这种坑
会报错吗?
@xmj112288: 不会。当时不会发现有错误。除非你去数据库检查插入数据会看到。
不会,除非是你事务没提交(导致db没数据,而且卡死后续可能系统相同资源的操作。)
不会,插入不成功,必然会报错,否则返回受影响行数。
很可能没有设置主键。
插入数字的话如果字段位NLL会出现插入成功字段没写入的情况,我之前遇到过。插入前先判断是否为NULL,然后想办法把字段改为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 行受影响) 也就是说插入失败,不报异