0

我正在尝试使用 SSDT 使我现有的 SQL Server 2008 数据库与 Windows Azure 平台兼容,但是由于 TVF 和视图在寻找位于SSMS 中的相同实例。

我已将它寻找的数据库添加到 Azure 中,这不是问题。

我发现如果我加载有问题的代码,我可以将 Azure 服务器地址添加到FROM解决错误的语句中(如下所示),但是我有大量依赖于外部数据库并希望可能有一个更快的方法?

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

我知道如果我合并数据库,则不会存在此问题,但是目前这是不可能的。

非常感谢你的帮助。

4

1 回答 1

1

为什么要尝试使本地 SQL Server Azure 兼容?您是否打算在云中的某个位置移动它?如果是这样,您将无法使用链接服务器。只要数据库保留在本地 SQL Server 实例上,您的 FROM 子句就可以工作。

假设这就是您想要做的,您会问是否有更快的方法来更改您的引用以指向云数据库,对吗?我不确定这是否对你有用,但我在另一个项目中遇到了类似的问题,最终使用了同义词。在此处查看我们的同义词:http: //msdn.microsoft.com/en-us/library/ms177544.aspx。虽然您不能为服务器创建同义词,但您可以为表/视图/过程创建同义词。

同样,这可能不适合你,但让我们试试这个......

假设您有名为 DB1 的主数据库、名为 DB2 的辅助数据库和名为 AzureDB2 的 DB2 云数据库,您可以在 DB2 中创建同义词以指向云数据库,而无需更改来自 DB1 的任何 SQL 语句。

所以假设你今天在 DB1 中有这样的语句:

从 DB2.MyTable 中选择 *

您可以在 DB2 中创建一个名为 MyTable 的同义词:

为 [myAzureserver.database.windows.net.ExternalDBName.dbo.TableName] 创建同义词 MyTable

DB2 基本上成了一座桥梁。您不需要更改 DB1 中的任何语句;只需在 DB2 中创建指向云数据库的同义词。

希望这对你有用。:)

于 2012-12-28T18:25:07.930 回答