sp_recompile (Transact-SQL)
次回実行時に、ストアド プロシージャとトリガの再コンパイルを行うようにします。
構文
sp_recompile [ @objname = ] 'object'
引数
[ @objname = ] 'object'
現在のデータベースにあるストアド プロシージャ、トリガ、テーブル、またはビューの修飾されているまたは修飾されていない名前です。object は nvarchar(776) であり、既定値はありません。object がストアド プロシージャまたはトリガの名前である場合、ストアド プロシージャまたはトリガは次回実行時に再コンパイルされます。object がテーブルまたはビューの名前である場合、このテーブルまたはビューを参照するすべてのストアド プロシージャは次回実行時に再コンパイルされます。
解説
sp_recompile は、現在のデータベース内でのみオブジェクトを検索します。
ストアド プロシージャやトリガが使用するクエリは、コンパイル時にだけ最適化されます。データベースにインデックスを追加したり、変更を加えたりすると、統計が変化するため、コンパイルされたストアド プロシージャやトリガの効率が低下します。そのテーブルに作用するストアド プロシージャやトリガを再コンパイルすることにより、クエリを再び最適化できます。
メモ : |
---|
SQL Server では、ストアド プロシージャとトリガが必要に応じて自動的に再コンパイルされます。 |
権限
指定したオブジェクトに対する ALTER 権限が必要です。
戻り値
成功した場合は 0 を、失敗した場合は 0 以外の値をそれぞれ返します。
例
次の例では、Customer
テーブルを対象とするストアド プロシージャが、次回実行時に再コンパイルされます。
USE AdventureWorks;
GO
EXEC sp_recompile N'Sales.Customer';
GO
参照
関連項目
CREATE PROCEDURE (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)