別のデータベースのテーブルへの参照がたくさんあるビューを作成しています。TSQLで変数を使用し、SQL Server Management Studioでフォーマットを維持する
ある時点で、他のデータベースを変更する必要があります。
次の開発者が別のデータベースを使用するようにスクリプトを変更しやすくしたいと考えています。
これは明らかにそれが必要のように動作:
CREATE VIEW ViewName
AS
SELECT *
FROM AnotherDatabase.SchemaName.TableName;
しかし、私はやるとき:
Msg 137, Level 15, State 2, Procedure ViewName, Line 3
Must declare the scalar variable "@DB".
私は何ができる何かのように:
DECLARE @DB CHAR(100)
SET @DB = 'AnotherDatabase'
GO
CREATE VIEW ViewName
AS
SELECT *
FROM @DB.SchemaName.TableName;
私はエラーを取得します
DECLARE @SQL ...
SET @SQL = ' ... FROM ' + @DB + ' ... '
EXEC (@SQL)
しかし、これは、この動的SQLのアプローチがSSMSの書式を削除したため、次の開発者にとってより簡単にすることを目的としています。
私の質問は次のとおりです。データベース参照を交換する必要があるT-SQLコードを次の開発者が容易に維持できるようにするにはどうすればよいですか?
注:
- 私は、他のデータベースが同じサーバー上にあるSQL Server 2008 R2の
- を使用しています。
シノニムを作成することをお勧めしますが、これは3つの部分ではなく2つの部分オブジェクトの命名を使用するよう強制します。 – PhillipH