SQL Server テーブルの存在確認

SQLServer会議室さん
http://www7.big.or.jp/~pinball/discus/sqls/29827.html
を参考に(というか、ほぼそのまま)・・・。


「example」テーブルの確認だったら・・・

if object_id('example') is not null
	select 'Found !'
else
	select 'Not Found !'

テーブルが存在する場合、idが何かしら返るので、それを見て判断できる(nullで無ければテーブルは存在する)。
テーブル名は文字で指定する。
DBが違う場合、'DB_NAME.dbo.example'とかってやれば大丈夫。


いつかどこかで、

select id from dbo.sysobjects where id = object_id(N'[dbo].[example]') and OBJECTPROPERTY(id, N'IsUserTable') = 1

というのを発見してメモしておいたのだけど、これだと接続先が同じDBでないとうまくいかなかった。


ちょっと変えて、

select id from DB_NAME.dbo.sysobjects where id = object_id(N'DB_NAME.dbo.example')

とやれば idが引っ張れた。