Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к: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