ソース データベースのレコードを宛先データベースにアーカイブする手順があり、ソース データベースのテーブルが宛先データベースにミラーリングされます。したがって、テーブル名を指定するときは、次のようにデータベース名も完全に指定する必要があります。
DB_NAME.dbo.TABLE_NAME
ただし、対応するデータベースの名前が異なる環境間でも、このストアド プロシージャを移動する必要があります。
例えば:
開発:
DEV_DB_NAME.dbo.TABLE_NAME
QA:
QA_DB_NAME.dbo.TABLE_NAME
これらの DB 名は、SHELL スクリプトを使用して環境変数から取得し、SPROC に渡すことができます。ただし、TSQL ではデータベース名に変数を使用できません。
基本的にスクリプト全体を文字列に変換し、exec
動的 SQL を使用して実行するソリューションがあります。
私のソリューションは推奨されていますか? 他の解決策はありますか?
ありがとう。