Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Возвращает число строк, затронутых при выполнении последней инструкции. Если число строк превышает 2 миллиарда, используйте инструкцию ROWCOUNT_BIG.
Соглашения о синтаксисе Transact-SQL
Синтаксис
@@ROWCOUNT
Типы возвращаемых данных
int
Замечания
Инструкции Transact-SQL могут задавать значение следующим @@ROWCOUNT образом:
- Задайте
@@ROWCOUNTколичество затронутых строк или чтения. Строки могут отправляться клиенту или не отправляться. - Сохранение
@@ROWCOUNTиз предыдущего выполнения инструкции. - Сброс до
@@ROWCOUNT0, но не возвращайте клиенту значение.
Операторы, которые делают простое назначение, всегда задают @@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 CURSORCLOSE CURSORPRINT, RAISERRORBEGIN TRANSACTIONили COMMIT TRANSACTION сброс ROWCOUNT значения 0в .
Скомпилированные в собственном коде хранимые процедуры сохраняют предыдущие @@ROWCOUNT. Инструкции Transact-SQL внутри скомпилированных в собственном коде хранимых процедур не задаются @@ROWCOUNT. Дополнительные сведения см. в статье Хранимые процедуры, скомпилированные в собственном коде.
Примеры
Следующий пример выполняет инструкцию UPDATE и использует @@ROWCOUNT для определения того, были ли изменены строки.
USE AdventureWorks2022;
GO
UPDATE HumanResources.Employee
SET JobTitle = N'Executive'
WHERE NationalIDNumber = 123456789
IF @@ROWCOUNT = 0
PRINT 'Warning: No rows were updated';
GO