SQL Serverシステムテーブルsysobjectsの紹介


Sysobjectsテーブルは、データベース内で作成された各オブジェクト(制約、デフォルト値、ログ、ルール、ストレージ・プロシージャなど)がテーブルの1行を占めます.tempdb内でのみ、各テンポラリ・オブジェクトがテーブルの1行を占めます.
Sysobjectsテーブル構造:
列名
データ型
説明
name
sysname
オブジェクト名、共通列
id
int
オブジェクトID番号
xtype
char(2)
オブジェクトタイプ.共通カラム.xtypeは、C=CHECK制約D=デフォルト、またはDEFAULT制約F=FOREIGN KEY制約L=ログFN=スカラー関数IF=インライン関数P=ストアド・プロシージャPK=PRIMARY KEY制約のいずれかのオブジェクト・タイプで使用できます.(タイプはK)RF=レプリケーションフィルタ記憶プロセスS=システムテーブルTF=テーブル関数TR=フリップフロップU=ユーザテーブルUQ=UNIQUE制約(タイプはK)V=ビューX=拡張記憶プロセス
uid
smallint
所有者ユーザーオブジェクト番号
info
smallint
保持します.内部使用のみ
status
int
保持します.内部使用のみ
base_schema_ ver
int
保持します.内部使用のみ
 replinfo
 int
保持します.レプリケーション用
 parent_obj
 int
親オブジェクトのオブジェクト識別番号(たとえば、トリガまたは制約の場合、この識別番号はテーブルID).
 crdate
 datetime
オブジェクトの作成日.
 ftcatid
 smallint
全文インデックスに登録されているすべてのユーザー・テーブルの全文ディレクトリ識別子は、登録されていないすべてのユーザー・テーブルに対して0です.
 schema_ver
 int
テーブルのスキーマが変更されるたびに増加するバージョン番号.
 stats_schema_ ver
 int
保持します.内部使用のみ.
type
char(2) 
オブジェクトタイプ.C=CHECK制約D=デフォルトまたはDEFAULT制約F=FOREIGN KEY制約FN=スカラー関数IF=インラインテーブル関数K=PRIMARY KEYまたはUNIQUE制約L=ログP=ストレージプロセスR=ルールRF=レプリケーションフィルタリングストレージプロセスS=システムテーブルTF=テーブル関数TR=フリップフロップU=ユーザテーブルV=ビューX=拡張ストレージ程
 userstat
smallint 
保持します.
 sysstat
smallint 
内部ステータス情報
 indexdel
 smallint
保持
 refdate
 datetime
のままに
 version
int 
保持
deltrig 
int 
保持
 instrig
int 
保持
 updtrig
int 
保持
 seltrig
int 
保持
 category
 int
パブリッシュ、コンストレイント、ID用
 cache
smallint 
保持
 
次のコマンドを使用して、対象のすべてのオブジェクトをリストします.
SELECT * FROM sysobjects WHERE xtype = --  :    SELECT * FROM sysobjects WHERE xtype = 'V'

データベースにテーブルが既に存在するかどうかを判断し、ある場合は削除します.
--   :if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[  ]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)drop table [dbo].[  ]
--   :if exists (select * from sysobjects where id = object_id(N'  ') and OBJECTPROPERTY(id, N'IsUserTable') = 1)drop table [dbo].[  ]
--   :if(Exists(Select * From SysObjects Where xtype='U' And Name='  ')) drop table [dbo].[  ]