Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Относится к:SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
Azure Synapse Analytics
Аналитическая платформа (PDW)
SQL база данных в Microsoft Fabric
Приводит к завершению обработки запроса в SQL Server после возвращения указанного количества строк.
Соглашения о синтаксисе Transact-SQL
Синтаксис
SET ROWCOUNT { number | @number_var }
Аргументы
число | @number_var
Количество строк, выраженное целым числом, которое необходимо обработать, перед завершением запроса.
Замечания
Внимание
Использование SETSET ROWCOUNT не повлияет DELETEна операторы , INSERT, и UPDATE в будущей версии SQL Server. Избегайте использования SETSET ROWCOUNT с DELETE, INSERTи UPDATE операторов в новых проектах разработки и планируйте изменять приложения, которые их используют в данный момент. Для аналогичного поведения используйте синтаксис TOP. Дополнительные сведения см. в разделе TOP (Transact-SQL).
Чтобы отключить эту опцию так, чтобы все строки возвращались, укажите SET ROWCOUNT 0.
Установка SET ROWCOUNT этой опции приводит к тому, что большинство операторов Transact-SQL останавливают обработку, если на них повлияло заданное количество строк. Это включает триггеры. Эта ROWCOUNT опция не влияет на динамические курсоры, но ограничивает набор рядов ключевых и нечувствительных курсоров. Пользоваться этим параметром следует осторожно.
SET ROWCOUNT переопределяет ключевое слово SELECT оператора TOP, если количество строк меньшее значение.
Параметр SET ROWCOUNT устанавливается во время выполнения или выполнения, а не во время синтаксического анализа.
Разрешения
Требуется членство в роли public.
Примеры
SET ROWCOUNT обработка прекращается после указанного количества строк. В следующем примере обратите внимание на то, что более 500 строк удовлетворяют условию: значение столбца Quantity меньше 300. Однако после подачи заявки SET ROWCOUNTвидно, что не все строки были возвращены.
USE AdventureWorks2022;
GO
SELECT count(*) AS Count
FROM Production.ProductInventory
WHERE Quantity < 300;
GO
Вот результирующий набор.
Count
-----------
537
(1 row(s) affected)
Теперь сделайте ROWCOUNT равным 4 и верните все строки, чтобы показать, что возвращается только 4 строки.
SET ROWCOUNT 4;
SELECT *
FROM Production.ProductInventory
WHERE Quantity < 300;
GO
-- (4 row(s) affected)
Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)
SET ROWCOUNT обработка прекращается после указанного количества строк. Обратите внимание, что в следующем примере больше 20 строк удовлетворяют условию AccountType = 'Assets'. Однако после подачи заявки SET ROWCOUNTвидно, что не все строки были возвращены.
-- Uses AdventureWorks
SET ROWCOUNT 5;
SELECT * FROM [dbo].[DimAccount]
WHERE AccountType = 'Assets';
Чтобы вернуть все строки, установите ROWCOUNT на 0.
-- Uses AdventureWorks
SET ROWCOUNT 0;
SELECT * FROM [dbo].[DimAccount]
WHERE AccountType = 'Assets';