关于 Set nocount on 的问题 一个简单的触发器 ALTER trigger WriteCreateDT on dbo.Weight for insert as begin update car set isuse=1 end
为何报错 “无法为更新行集定位:一些值可能已在最后读取后改变”
而增加 Set nocount on 语句后(如下),就不报错了呢 ALTER trigger WriteCreateDT on dbo.Weight for insert as begin set nocount on --增加这句 update car set isuse=1 end
set nocount on 语句起和作用,网上大多说是不返回计数,可以提高性能,可这不只是性能的问题吧,报错啊
------解决方案-------------------- set nocount ON|OFF 阻止在结果集中返回可显示受 Transact-SQL 语句或存储过程影响的行计数的消息。 你说的不是报错,是警告.应用程序中如果发生某些错误,会捕捉到此类提示信息并返回给用户,实际上程序并未报错中止
------解决方案--------------------
SQL code
CREATE trigger test
on dbo.a
for insert
as
begin
update b set id=id+1
END
INSERT INTO dbo.a
( id, c, d )
VALUES ( 1, -- id - int
'2', -- c - char(2)
'3' -- d - char(3)
)
------解决方案-------------------- 比较郁闷,模拟不出来你的错误来