SET ROWCOUNT (Transact-SQL)
指定の行数が返された後、SQL Server のクエリの処理を停止します。
構文
SET ROWCOUNT { number | @number_var }
引数
- number | @number\_var
特定のクエリを停止するまでに処理される行数を整数で指定します。
説明
重要 |
---|
SQL Server の将来のリリースでは、SET ROWCOUNT を使用しても、DELETE、INSERT、および UPDATE ステートメントが影響を受けることはありません。 新しい開発作業では DELETE、INSERT、および UPDATE ステートメントでの SET ROWCOUNT の使用を避け、現在 SET ROWCOUNT を使用しているアプリケーションは変更を検討してください。 同様の処理を行う場合は、TOP 構文を使用します。 詳細については、「TOP (Transact-SQL)」を参照してください。 |
このオプションをオフにして、すべての行が返されるようにするには、SET ROWCOUNT 0 を指定してください。
SET ROWCOUNT オプションを設定すると、大部分の Transact-SQL ステートメントでは、指定した行数の処理が終わったところで処理が停止します。 これにはトリガーも含まれます。 ROWCOUNT オプションは動的カーソルには影響しませんが、このオプションによってキーセット カーソルと非反映型カーソルの行セットは制限されます。 このオプションの使用には注意が必要です。
SET ROWCOUNT で指定された行数が SELECT ステートメントの TOP キーワードの値より少ない場合は、SET ROWCOUNT の値が優先されます。
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)