0

SSDT を使用して、既存の SQL Server 2008 データベースを Windows Azure プラットフォームと互換性を持たせようとしていますが、プロジェクトをビルドすると、TVF とビューが外部データベースを探しているために大量のエラーが発生します。 SSMS の同じインスタンス。

探しているデータベースを Azure に追加しましたが、これは問題ではありませんでした。

FROM問題のあるコードをロードすると、エラーを解決するステートメントにAzure サーバーのアドレスを追加できることがわかりました(以下を参照)。より速い方法?

FROM [myAzureserver.database.windows.net.ExternalDBName.dbo.TableName] as ALIAS

データベースをマージすればこの問題が発生しないことは理解していますが、現時点では不可能です。

どうもありがとうございました。

4

1 に答える 1

1

ローカルのSQLServerAzureに準拠させようとしているのはなぜですか?クラウドのある時点で移動する予定ですか?その場合、リンクサーバーを使用できなくなります。FROM句は、データベースがオンプレミスのSQLServerインスタンスにある限り機能します。

それがあなたのやりたいことだと仮定すると、クラウドデータベースを指すように参照を変更するより速い方法があるかどうかを尋ねていますよね?これがうまくいくかどうかはわかりませんが、別のプロジェクトで同様の問題が発生し、同義語を使用することになりました。ここで同義語を確認してください:http://msdn.microsoft.com/en-us/library/ms177544.aspx。サーバーのシノニムを作成することはできませんが、テーブル/ビュー/プロシージャのシノニムを作成することはできます。

繰り返しますが、これはうまくいかないかもしれませんが、これを試してみましょう...

DB1と呼ばれるプライマリデータベース、DB2と呼ばれるセカンダリデータベース、およびAzureDB2と呼ばれるDB2のクラウドデータベースがあると仮定すると、DB1からSQLステートメントを変更せずに、クラウドデータベースを指すようにDB2に同義語を作成できます。

したがって、今日DB1にこのステートメントがあると仮定します。

SELECT * FROM DB2.MyTable

MyTableと呼ばれるDB2の同義語を作成できます。

[myAzureserver.database.windows.net.ExternalDBName.dbo.TableName]の類義語MyTableを作成します

DB2は基本的にブリッジになります。DB1のステートメントを変更する必要はありません。クラウドデータベースを指す同義語をDB2に作成するだけです。

うまくいけば、これはあなたのために働きます。:)

于 2012-12-28T18:25:07.930 に答える