sp_recompile (Transact-SQL)

次回実行時に、ストアド プロシージャとトリガの再コンパイルを行うようにします。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

sp_recompile [ @objname = ] 'object'

引数

[ @objname = ] 'object'

現在のデータベースにあるストアド プロシージャ、トリガ、テーブル、またはビューの修飾されているまたは修飾されていない名前です。objectnvarchar(776) であり、既定値はありません。object がストアド プロシージャまたはトリガの名前である場合、ストアド プロシージャまたはトリガは次回実行時に再コンパイルされます。object がテーブルまたはビューの名前である場合、このテーブルまたはビューを参照するすべてのストアド プロシージャは次回実行時に再コンパイルされます。

解説

sp_recompile は、現在のデータベース内でのみオブジェクトを検索します。

ストアド プロシージャやトリガが使用するクエリは、コンパイル時にだけ最適化されます。データベースにインデックスを追加したり、変更を加えたりすると、統計が変化するため、コンパイルされたストアド プロシージャやトリガの効率が低下します。そのテーブルに作用するストアド プロシージャやトリガを再コンパイルすることにより、クエリを再び最適化できます。

ms181647.note(ja-jp,SQL.90).gifメモ :
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)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手