1 2 3 4 5 |
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'procedure_name') DROP PROCEDURE procedure_name GO CREATE PROCEDUR procedure_name |
解説
sys.objectsは
データベース内で作成されるユーザー定義のスキーマ スコープ オブジェクトごとに 1レコード作成されます。
sys.objectsにある「type」カラムは以下のデータが格納されています。
AF = 集計関数 (CLR)
C = CHECK 制約
D = DEFAULT (制約またはスタンドアロン)
F = FOREIGN KEY 制約
FN = SQL スカラー関数
FS = アセンブリ (CLR) スカラー関数
FT = アセンブリ (CLR) テーブル値関数
IF = SQL インライン テーブル値関数
IT = 内部テーブル
P = SQL ストアド プロシージャ
PC = アセンブリ (CLR) ストアド プロシージャ
PG = プラン ガイド
PK = PRIMARY KEY 制約
R = ルール (旧形式、スタンドアロン)
RF = レプリケーション フィルター プロシージャ
S = システム ベース テーブル
SN = シノニム
SQ = サービス キュー
TA = アセンブリ (CLR) DML トリガー
TF = SQL テーブル値関数
TR = SQL DML トリガー
TT = テーブルの種類
U = テーブル (ユーザー定義)
UQ = UNIQUE 制約
V = ビュー
X = 拡張ストアド プロシージャ
ですので、今回は「P」を指定しています。
同じようにこのタイプを指定してオブジェクトの存在チェックが可能です。
メルマガ登録をお願いします。
素敵な?情報がいつもあなたに届くようになります。(itmnewsの記事が届きます。)お役に立つかどうかわかりませんが頑張りますっ。登録してみてください。