Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Относится к:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Аналитическая платформа (PDW)
SQL база данных в Microsoft Fabric
Приводит к завершению обработки запроса в SQL Server после возвращения указанного количества строк.
Соглашения о синтаксисе Transact-SQL
Синтаксис
SET ROWCOUNT { number | @number_var }
Аргументы
число | @number_var
Количество строк, выраженное целым числом, которое необходимо обработать, перед завершением запроса.
Замечания
Внимание
Использование инструкции SET ROWCOUNT не будет оказывать влияния на инструкции DELETE, INSERT и UPDATE в последующей версии SQL Server. При программировании избегайте использования инструкции SET ROWCOUNT с инструкциями DELETE, INSERT и UPDATE и постарайтесь внести изменения в приложения, которые используют ее в настоящее время. Для аналогичного поведения используйте синтаксис TOP. Дополнительные сведения см. в разделе TOP (Transact-SQL).
Для выключения этого параметра и возвращения всех строк, укажите SET ROWCOUNT 0.
Установка параметра ROWCOUNT приводит к тому, что большинство инструкций Transact-SQL прекращают обработку после указанного числа строк. Это включает триггеры. Параметр ROWCOUNT не влияет на динамические курсоры, но ограничивает набор строк набора ключей и нечувствительных курсоров. Пользоваться этим параметром следует осторожно.
Инструкция SET ROWCOUNT переопределяет ключевое слово TOP инструкции SELECT, если параметр ROWCOUNT имеет меньшее значение.
Значение параметра 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';