この文は、プロシージャを修正したり、Sybase Replication Server でのレプリケーションのプロシージャを有効にしたり無効にするために使用します。新しいプロシージャ全体を ALTER PROCEDURE 文にインクルードします。
PROC は PROCEDURE の同義語として使用できます。
ALTER PROCEDURE [ owner.]procedure-name procedure-definition
procedure-definition : CREATE PROCEDURE 構文
ALTER PROCEDURE [ owner.]procedure-name REPLICATE { ON | OFF }
ALTER PROCEDURE [ owner.]procedure-name SET HIDDEN
ALTER PROCEDURE [ owner.]procedure-name RECOMPILE
構文 1 ALTER PROCEDURE 文の構文は、最初の 1 語を除き、CREATE PROCEDURE 文の構文とまったく同じです。CREATE PROCEDURE 文のどちらのバージョンも変更できます。
プロシージャに対する既存のパーミッションはそのまま維持されます。このため、パーミッションの再割り当ては必要ありません。DROP PROCEDURE と CREATE PROCEDURE を実行した場合は、EXECUTE パーミッションを再び割り当ててください。
構文 2 プロシージャが Sybase Replication Server によって他のサイトにレプリケートされる場合は、プロシージャに REPLICATE ON を設定します。
構文 3 SET HIDDEN を使用して、関連するプロシージャの定義を難読化し、解読できないようにします。このプロシージャはアンロードして、他のデータベースに再ロードできます。
この設定は、元に戻せません。元のソースが再び必要な場合は、データベース外で保存してください。
SET HIDDEN を使用すると、デバッガを使用したデバッグでも、プロシージャ・プロファイリングによっても、プロシージャ定義は表示されません。
構文 2 と構文 1 を組み合わせることはできません。構文 3 は、構文 1 とも構文 2 とも組み合わせることはできません。
構文 4 RECOMPILE 構文を使用して、ストアド・プロシージャを再コンパイルします。ストアド・プロシージを再コンパイルすると、カタログに格納された定義が再解析され、構文が検証されます。結果セットを生成するものの RESULT 句を含まないプロシージャの場合は、データベース・サーバがプロシージャの結果セットの特性を判別しようとし、カタログに情報を格納します。これは、プロシージャの作成後に、プロシージャの参照先テーブルがカラムの追加、削除、または名前変更するように変更されている場合に役立つことがあります。
プロシージャの定義は、再コンパイルしても変わりません。SET HIDDEN 句で隠された定義を持つプロシージャは再コンパイルできますが、これらの定義は隠されたままになります。
プロシージャの所有者であるか、DBA 権限が必要です。
オートコミット。
SQL/2003 ベンダ拡張。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |