Uns*_*ced 46 t-sql sql-server audit sql-delete
在SQL Server 2005中,是否有一种删除行并被告知实际删除了多少行的方法?
我可以select count(*)用相同的条件做一件事,但我需要这完全值得信赖.
我的第一个猜测是使用@@ROWCOUNT变量 - 但是没有设置,例如
delete
from mytable
where datefield = '5-Oct-2008'
select @@ROWCOUNT
Run Code Online (Sandbox Code Playgroud)
总是返回0.
MSDN建议OUTPUT构建,例如
delete from mytable
where datefield = '5-Oct-2008'
output datefield into #doomed
select count(*)
from #doomed
Run Code Online (Sandbox Code Playgroud)
这实际上失败了,语法错误.
有任何想法吗?
这样做:
SET NOCOUNT off ;
SELECT @p1 = @@ROWCOUNT
Run Code Online (Sandbox Code Playgroud)
其中p1是您在存储过程中设置的输出参数.希望能帮助到你.