Mssql更新查询返回行计数但不更新实际记录

时间:2017-12-11 12:58:47

标签: sql-server

我在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'

我第一次看到这种问题。

1 个答案:

答案 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