、そのテーブルがあるか否かを判断します
OBJECT_ID()は:. Nは、異なる言語のUnicodeで支持することができるオブジェクトの名前を表すIDテーブルを取得します
場合 存在(選択 * から dbo.sysobjects ID = OBJECT_ID(N ' [DBO]。[表名] ')およびOBJECTPROPERTY(ID、N ' IsUserTable ')= 1 ) ドロップテーブル[ DBO ]。[ 表名]
第二に、ストアドプロシージャの名前が作成されるためにそこにあるかどうかを判断します
IF EXISTS(SELECT * から dbo.sysobjects ID = OBJECT_ID(N '[DBO] [ストアドプロシージャ名] ')およびOBJECTPROPERTY(ID、N ' IsProcedure ')= 1 ) - ストアドプロシージャの削除ドロップ手順[ DBOを】。[ ストアドプロシージャ名]
第三に、ビュー名を作成するためにそこにあるかどうかを判断します
IF EXISTS(SELECT * から dbo.sysobjects ID = OBJECT_ID(N ' [DBO] [表示名]。')とOBJECTPROPERTY(ID、N ' IsView ')= 1。 ) - ビュー削除ドロップビュー[ DBOを]。[ ビュー名]
第四に、関数の名前を作成する必要があるかどうかを判断します
IF EXISTS(SELECT * から dbo.sysobjects ID = OBJECT_ID(N '[DBO] [関数名] ')と XTYPE 中(N ' FN '、N ' IF '、N ' TFが' )) - 機能を削除ドロップ機能[ DBO ]。[ 関数名]
ファイブは、そこにリストされているか否かを判断します
もし COL_LENGTH('表名'、'列名')で はない ヌル セレクト * からのsysobjects ここ ID で(選択 ID から SYSCOLUMNSをどこ名= '列名')と名前= '表名'
六、dbo.sysobjects
各データベースのSQL Server内のsysobjectsには、データベース内で作成されたすべてのオブジェクトを格納、このシステムテーブルを、持っています
XTYPEオブジェクトタイプ:
C:CHECK制約、D:DEFAULT制約、F:FOREIGN KEY制約、L:ログ、FN:スカラー関数、IF:インラインテーブル関数、P:ストアドプロシージャ、RF:レプリケーションフィルタストアドプロシージャ、TR:フリップフロップ、U:ユーザテーブル、X:ストアドプロシージャ、S拡張:システムテーブル、TF:表関数、UQ:UNIQUE制約(タイプK)、V:ビュー、PK:PRIMARY KEY制約(タイプK)