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?
Have you tried
SET NOCOUNT OFF?