SET ROWCOUNT (Transact-SQL)
使 SQL Server 在傳回指定的資料列數之後,停止處理查詢。
語法
SET ROWCOUNT { number | @number_var }
引數
- number | @number\_var
這是停止特定查詢之前所要處理的資料列數,這是一個整數。
備註
重要事項 |
---|
使用 SET ROWCOUNT 不會影響將來 SQL Server 版本中的 DELETE、INSERT 和 UPDATE 陳述式。 請避免在新的開發工作中使用 SET 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 AdventureWorks2012;
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)