@@ROWCOUNT (Transact-SQL)
Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
Возвращает число строк, затронутых при выполнении последней инструкции. Если число строк превышает 2 миллиарда, используйте инструкцию ROWCOUNT_BIG.
Соглашения о синтаксисе Transact-SQL
Синтаксис
@@ROWCOUNT
Примечание.
Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.
Типы возвращаемых данных
int
Замечания
Инструкции Transact-SQL могут установить значение в функции @@ROWCOUNT следующими способами:
Задайте @@ROWCOUNT число затронутых строк или чтения. Строки могут быть отосланы или не отосланы клиенту.
Сохраните @@ROWCOUNT из предыдущего выполнения инструкции.
Сброс @@ROWCOUNT до 0, но не возвращает значение клиенту.
Операторы, которые делают простое назначение, всегда задают значение @@ROWCOUNT значение 1. Строки не отправляются клиенту. Примерами таких инструкций являются SET @local_variable, RETURN, READTEXT и инструкции SELECT без запроса, такие как 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, DEALLOCATE CURSOR, CLOSE CURSOR, PRINT, RAISERROR, BEGIN 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
См. также
Системные функции (Transact-SQL)
SET ROWCOUNT (Transact-SQL)
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по