多数の同様のテーブルに対して実行するように設計されたストアド プロシージャを作成しています。毎年データベースをアーカイブしているため、テーブル名だけでなくデータベース名のパラメーターも取得します。
問題は、テーブルが存在することを確認したいのですが、事前にデータベース名がわかりません。通常、私はこれを行うことができます:
IF EXISTS (
SELECT *
FROM [Database].sys.objects
WHERE object_id = OBJECT_ID(@TableName)
AND type in (N'U'))
しかし、DB 名が変数として渡されるということは、sys.objects が私と一緒にガタガタになることを確信していることを意味します。
これは可能ですか?