サンプルコードは、別のデータベースのテーブルを参照してから現在のものを参照します。データベース名をハードコードしないでT-SQLストアドプロシージャから別のデータベースを参照する
use DB1
select * from SomeTableInDB1
select * from DB2..SomeTableInDB2
質問:他のデータベース(「DB2」)の名前を何らかの形でソフトコードすることはできますか?あなたが唯一持っているので、あなたは一つの場所にデータベース名を変更するには、インターフェイスのビューを使用することができ
use DB1
varchar @OtherDB
set @OtherDB = "DB2"
select * from SomeTableInDB1
select * from @OtherDB..SomeTableInDB2
シノニムに関する1つの問題は、コードを読むときに何が起こっているのかが明白でないことです。私は命名規則でそれを緩和できると思います。 – Andomar
私はこれが好きです!ありがとうアーロン! 1つの質問 - リンクされたサーバー上の表に同義語を作成できますか。つまり、別の物理サーバー上に別のDBが存在する場合 –
はい、CREATE SYNONYM dbo.foo FOR server.db.dbo.bar; –