@@ROWCOUNT (Transact-SQL)

Возвращает число строк, затронутых при выполнении последней инструкции. Если число строк превышает 2 миллиарда, используйте инструкцию ROWCOUNT_BIG.

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

Значок ссылки на раздел Синтаксические обозначения в Transact-SQL

Синтаксис

@@ROWCOUNT

Возвращаемые типы

int

Замечания

Инструкции Transact-SQL могут установить значение в функции @@ROWCOUNT следующими способами.

  • Установка функции @@ROWCOUNT в число считанных или измененных строк. Строки могут быть отосланы или не отосланы клиенту.

  • Сохранить функцию @@ROWCOUNT из предыдущего выполнения инструкции.

  • Сбросить функцию @@ROWCOUNT в 0, но не возвращать значение клиенту.

Инструкции, которые выполняют простые присваивания, всегда устанавливают функцию @@ROWCOUNT в значение 1. Строки не отправляются клиенту. Примерами таких инструкций являются: SET @local\_variable, RETURN, READTEXT и выборка без инструкций запроса, таких как SELECT GETDATE() или SELECT Generic Text.

Инструкции, которые осуществляют присвоение в запросе или используют RETURN, устанавливают значение функции @@ROWCOUNT в число строк, задействованных или считанных запросом, например SELECT @local\_variable = c1 FROM t1.

Инструкции языка обработки данных (DML) присваивают параметру @@ROWCOUNT значение, равное числу строк, задействованных в запросе, и возвращают это значение клиенту. DML-инструкции могут не отправлять строки клиенту.

Инструкции DECLARE CURSOR и FETCH присваивают параметру @@ROWCOUNT значение 1.

Инструкции EXECUTE сохраняют предыдущее значение параметра @@ROWCOUNT.

Такие инструкции, как USE, SET <option>, DEALLOCATE CURSOR, CLOSE CURSOR, BEGIN TRANSACTION или COMMIT TRANSACTION, присваивают параметру ROWCOUNT значение 0.

Скомпилированные в собственном коде хранимые процедуры сохраняют предыдущее значение параметра @@ROWCOUNT. Инструкции Transact-SQL, находящиеся внутри скомпилированных в собственном коде хранимых процедур, не устанавливают значение параметра @@ROWCOUNT. Дополнительные сведения см. в разделе Базовое описание хранимых процедур, скомпилированных в собственном коде.

Примеры

Следующий пример выполняет инструкцию UPDATE и использует @@ROWCOUNT для определения того, были ли изменены строки.

USE AdventureWorks2012;
GO
UPDATE HumanResources.Employee 
SET JobTitle = N'Executive'
WHERE NationalIDNumber = 123456789
IF @@ROWCOUNT = 0
PRINT 'Warning: No rows were updated';
GO

См. также

Справочник

Системные функции (Transact-SQL)

SET ROWCOUNT (Transact-SQL)