В SQL Server 2005 существует ли способ удалить строки и узнать, сколько из них действительно удалено?
Я мог бы сделать select count(*)
с теми же условиями, но мне нужно, чтобы это было абсолютно надежным.
Мое первое предположение заключалось в использовании переменных @@ROWCOUNT
, но это не задано, например.
delete
from mytable
where datefield = '5-Oct-2008'
select @@ROWCOUNT
всегда возвращает 0.
MSDN предлагает конструкцию OUTPUT
, например.
delete from mytable
where datefield = '5-Oct-2008'
output datefield into #doomed
select count(*)
from #doomed
это действительно не с синтаксической ошибкой.
Любые идеи?