In SQL Server 2005, is there a way of deleting rows and being told how many were actually deleted?
I could do a select count(*) with the same conditions, but I need this to be utterly trustworthy.
My first guess was to use the @@ROWCOUNT variables - but that isn't set, e.g.
delete
from mytable
where datefield = '5-Oct-2008'
select @@ROWCOUNT
always returns a 0.
MSDN suggests the OUTPUT construction, e.g.
delete from mytable
where datefield = '5-Oct-2008'
output datefield into #doomed
select count(*)
from #doomed
this actually fails with a syntax error.
Any ideas?