Contar el número de filas eliminadas en un procedimiento almacenado de SQL Server
En SQL Server 2005, ¿hay una manera de eliminar filas y se le dice cuántos fueronactualmente eliminado?
Yo podria hacer unselect count(*)
con las mismas condiciones, pero necesito que esto sea completamente confiable.
Mi primera suposición fue usar el@@ROWCOUNT
variables, pero eso no está establecido, por ejemplo,
delete
from mytable
where datefield = '5-Oct-2008'
select @@ROWCOUNT
Siempre devuelve un 0.
MSDN sugiere laOUTPUT
construcción, por ejemplo
delete from mytable
where datefield = '5-Oct-2008'
output datefield into #doomed
select count(*)
from #doomed
esto realmente falla con un error de sintaxis.
¿Algunas ideas?