スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MyDrop ・・・ あればテーブル削除

「テーブルを削除する」という簡単なことも、「なければエラー」になったり、「一時テーブルはtempDBを見に行くため、USEコマンドをつかわないとだめ」だとか、かなりめんどう。。。

特に一時テーブル(#が先頭につくテーブル)は厄介。tempDBというところに格納されるらしい。


なので、「あればテーブル削除」するストアドプロシージャを作成。


CREATE PROCEDURE MyDrop
@mytable nvarchar(255)
AS
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(@mytable))
BEGIN
exec('drop table ' + @mytable );
print '--- ' + @mytable + ' has been dropped.'
END
ELSE
BEGIN
declare @objid int
set @objid =OBJECT_ID('tempdb..'+@mytable)
IF EXISTS (SELECT * FROM tempDB.dbo.sysobjects WHERE id = @objid)
BEGIN
exec('drop table ' + @mytable );
print '--- ' + @mytable + ' has been dropped.'
END
END
GO


スポンサーサイト

トラックバック

コメント

コメントを残す

Secret



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。