我在sql server数据库上单独运行查询,在2014版本上运行。
尝试执行以下查询以更新2条记录。当我执行脚本时,它返回rowcount = 2,但记录始终保留旧值。
桌面上没有定义触发器。为了进一步检查,我在更新脚本中添加了输出子句,并且令人惊讶的是它为插入表的列返回旧值。
update MemberDataImport set IsInsertStatus=3579346798476
where LastName is null;
update MemberDataImport set IsInsertStatus=3579346798476
output inserted.IsInsertStatus
where LastName is null;
update MemberDataImport set IsInsertStatus=2
output inserted.IsInsertStatus
where LastName is null;
update MemberDataImport set IsInsertStatus=100
output inserted.IsInsertStatus
where LastName is null;
无论我正在更新什么值,它总是返回1作为输出,当前存储在表中为列' IsInsertStatus'
我第一次看到这种问题。
答案 0 :(得分:0)
无论我正在更新什么值,我 t总是返回1作为输出 当前存储在列'IsInsertStatus'
的表中
这是repro:
declare @MemberDataImport table (IsInsertStatus bit, lastname varchar(100))
insert into @MemberDataImport (IsInsertStatus) values (10)
update @MemberDataImport set IsInsertStatus=2
output inserted.IsInsertStatus
where LastName is null;
这是因为如果IsInsertStatus是bit
。