Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
プロシージャーを変更します。
ALTER PROCEDURE [ owner.]procedure-name procedure-definition
procedure-definition :CREATE PROCEDURE 文を参照してください。
ALTER PROCEDURE [ owner.]procedure-name SET HIDDEN
ALTER PROCEDURE [ owner.]procedure-name RECOMPILE
ALTER PROCEDURE 文には、新しいプロシージャー全体を含めてください。PROC は PROCEDURE の同義語として使用できます。
構文 1 ALTER PROCEDURE 文の構文は、最初の 1 語を除き、CREATE PROCEDURE 文の構文とまったく同じです。Watcom-SQL ダイアレクトと Transact-SQL ダイアレクトのプロシージャーは、いずれも ALTER PROCEDURE を使用して変更できます。
ALTER PROCEDURE では、プロシージャーの既存のパーミッションは変更されません。DROP PROCEDURE に続けて CREATE PROCEDURE を実行した場合は、実行パーミッションが再割り当てされます。
構文 2 SET HIDDEN を使用して、関連するプロシージャーの定義を難読化し、解読できないようにします。このプロシージャーはアンロードして、他のデータベースに再ロードできます。
SET HIDDEN を使用すると、デバッガーを使用したデバッグでも、プロシージャープロファイリングによっても、プロシージャー定義は表示されません。
構文 1 と構文 2 を組み合わせることはできません。
この設定は、元に戻せません。元のプロシージャー定義をデータベースの外部に保持することを強くおすすめします。
構文 3 RECOMPILE 構文を使用して、ストアドプロシージャーを再コンパイルします。ストアドプロシージを再コンパイルすると、カタログに格納された定義が再解析され、構文が検証されます。結果セットを生成するものの RESULT 句を含まないプロシージャーの場合は、データベースサーバーがプロシージャーの結果セットの特性を判別しようとし、カタログに情報を格納します。これは、プロシージャーの作成後に、プロシージャーの参照先テーブルがカラムの追加、削除、または名前変更するように変更されている場合に役立つことがあります。
プロシージャーの定義は、再コンパイルしても変わりません。SET HIDDEN 句で隠された定義を持つプロシージャーは再コンパイルできますが、これらの定義は隠されたままになります。
プロシージャーの所有者であるか、DBA 権限が必要です。
オートコミット。
SQL/2008 ベンダー拡張。ALTER PROCEDURE は、SQL/2008 標準のオプションの SQL 言語機能 F381 です。ただし、SQL 標準では、ALTER PROCEDURE を使用してストアドプロシージャー定義を再定義することはできず、Transact-SQL ダイアレクトのプロシージャーもサポートされていません。SQL/2008 では、SET HIDDEN または RECOMPILE はサポートされていません。