如何获取已删除记录的数量?

Dav*_*het 27 sql-server

我有一个删除某些记录的存储过程.我需要获取已删除记录的数量.

我试着这样做:

DELETE FROM OperationsV1.dbo.Files WHERE FileID = @FileID   
SELECT @@ROWCOUNT AS DELETED;            
Run Code Online (Sandbox Code Playgroud)

但DELETED显示为0,但删除了相应的记录.我试过了SET NOCOUNT OFF; 没有成功.能否请你帮忙?谢谢.

Mar*_*ith 35

这应该工作正常.设置NOCOUNT是无关紧要的.

你在两个人之间有任何陈述吗?@@ROWCOUNT在每个语句后重置,因此您必须立即检索该值而不插入任何语句.

  • 对不起,这是我的错.我把SELECT @@ ROWCOUNT作为DELETED; 在错误的删除声明之后. (6认同)

Jam*_*ard 5

我在调试存储过程时使用此代码片段来验证操作(例如删除)后的计数:

DECLARE @Msg varchar(30)
...
SELECT @Msg = CAST(@@ROWCOUNT AS VARCHAR(10)) + ' rows affected'
RAISERROR (@Msg, 0, 1) WITH NOWAIT
Run Code Online (Sandbox Code Playgroud)