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


SET ROWCOUNT (Transact-SQL)

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

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

Синтаксис

SET ROWCOUNT { number | @number_var } 

Аргументы

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

Замечания

Важное примечаниеВажно!

Использование инструкции 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.

ПримечаниеПримечание

Установка параметра 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 AdventureWorks2008R2;
GO
SELECT count(*) AS Count
FROM Production.ProductInventory
WHERE Quantity < 300;
GO

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

Count

-----------

537

(Обработано строк: 1)

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

SET ROWCOUNT 4;
UPDATE Production.ProductInventory
SET Quantity = 400
WHERE Quantity < 300;
GO

(Обработано строк: 4)

См. также

Справочник