Поделиться через


SET ROWCOUNT (Transact-SQL)

Приводит к завершению обработки запроса SQL Server после возвращения указанного количества строк.

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

Синтаксис

SET ROWCOUNT { number | @number_var } 

Аргументы

  • number| **@**number_var
    Количество строк, выраженное целым числом, которое необходимо обработать, перед завершением запроса.

Замечания

ms188774.note(ru-ru,SQL.90).gifВажно!
Использование инструкции SET ROWCOUNT не будет оказывать влияния на инструкции DELETE, INSERT и UPDATE в следующем выпуске SQL Server. Избегайте применения инструкции SET ROWCOUNT вместе с инструкциями DELETE, INSERT и UPDATE в новых разработках и запланируйте изменение приложений, которые используют ее в настоящее время. Кроме того, рекомендуется переписать инструкции DELETE, INSERT и UPDATE, которые используют инструкцию SET ROWCOUNT в настоящее время, используя ключевое слово TOP. Дополнительные сведения см. разделе DELETE (Transact-SQL), INSERT (Transact-SQL) или UPDATE (Transact-SQL).

Инструкции INSERT, UPDATE и DELETE для удаленных таблиц, а также для локальных и удаленных секционированных представлений игнорируют значение параметра ROWCOUNT.

Для выключения этого параметра и возвращения всех строк, укажите SET ROWCOUNT 0.

ms188774.note(ru-ru,SQL.90).gifПримечание.
Установка параметра ROWCOUNT приводит к тому, что большинство инструкций языка Transact-SQL прекращают обработку, если на них влияет указанное число строк. Это касается триггеров и таких инструкций изменения данных, как INSERT, UPDATE и DELETE. Параметр ROWCOUNT не влияет на динамические курсоры, но ограничивает набор строк набора ключей и статических курсоров. Этот параметр следует осторожно использовать при помощи инструкции SELECT.

Инструкция SET ROWCOUNT переопределяет ключевое слово TOP инструкции SELECT, если параметр ROWCOUNT имеет меньшее значение.

Инструкция SET ROWCOUNT игнорируется в инструкциях INSERT, UPDATE и DELETE, если в той же инструкции используется явное выражение TOP. Это касается инструкций, в которых за инструкцией INSERT следует предложение SELECT.

Значение параметра ROWCOUNT устанавливается во время выполнения, а не во время синтаксического анализа.

Разрешения

Необходимо членство в роли public.

Примеры

Инструкция SET ROWCOUNT завершает обработку после указанного числа строк. Обратите внимание, что в следующем примере 545 строк удовлетворяют условию: значение столбца Quantity меньше 300. Однако по числу строк, возвращенному обновлением, можно видеть, что обработаны не все строки. Параметр ROWCOUNT влияет на все инструкции языка Transact-SQL.

USE AdventureWorks;
GO
SELECT count(*) AS Count
FROM Production.ProductInventory
WHERE Quantity < 300;
GO

Ниже приводится результирующий набор.

Count       
----------- 
537          

(1 row(s) affected)

Теперь присвоим параметру ROWCOUNT значение 4 и обновим все строки со значением столбца Quantity меньше чем 300.

SET ROWCOUNT 4;
UPDATE Production.ProductInventory
SET Quantity = 400
WHERE Quantity < 300;
GO
(4 row(s) affected)

См. также

Справочник

SET (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005