SET ROWCOUNT (Transact-SQL)
使 SQL Server 在傳回指定的資料列數之後,停止處理查詢。
語法
SET ROWCOUNT { number | @number_var }
引數
number| **@**number_var
這是停止特定查詢之前所要處理的資料列數,這是一個整數。
備註
重要事項: |
---|
使用 SET ROWCOUNT 不會影響 SQL Server 下一版本中的 DELETE、INSERT 和 UPDATE 陳述式。請避免在新的開發工作中,搭配 DELETE、INSERT 和 UPDATE 陳述式來使用 SET ROWCOUNT,對於目前在使用它的應用程式,請規劃修改它們。另外,對於目前在使用 SET ROWCOUNT 的 DELETE、INSERT 和 UPDATE 陳述式,我們建議您重新撰寫它們來使用 TOP 語法。如需詳細資訊,請參閱<DELETE (Transact-SQL)>、<INSERT (Transact-SQL)>或<UPDATE (Transact-SQL)>。 |
針對遠端資料表以及本機和遠端資料分割檢視來進行的 INSERT、UPDATE 和 DELETE 陳述式,其 SET ROWCOUNT 選項的設定都會被忽略。
若要將這個選項設為關閉,以便傳回所有資料列,請指定 SET ROWCOUNT 0。
附註: |
---|
設定 SET ROWCOUNT 選項會使大部份 Transact-SQL 陳述式在受到指定資料列數影響之後停止處理。其中包括觸發程序和資料修改陳述式,如 INSERT、UPDATE 和 DELETE。ROWCOUNT 選項不會影響動態資料指標,但它會限制索引鍵集和 INSENSITIVE 資料指標之資料列集。您使用這個選項時,應該非常小心,它主要是搭配 SELECT 陳述式一起使用。 |
如果資料列計數值比較小,SET ROWCOUNT 會覆寫 SELECT 陳述式 TOP 關鍵字。
當在 INSERT、UPDATE 和 DELETE 陳述式中使用明確的 TOP 運算式時,會忽略 INSERT、UPDATE 和 DELETE 陳述式中的 SET ROWCOUNT。其中包括 INSERT 後面接著 SELECT 子句的陳述式。
SET 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
,再利用小於 300
的 Quantity
來更新所有資料列。
SET ROWCOUNT 4;
UPDATE Production.ProductInventory
SET Quantity = 400
WHERE Quantity < 300;
GO
(4 row(s) affected)