gpt4 book ai didi

sql - 如何通过 Visual Studio/SSDT 将外部表添加到 Azure SQL DB

转载 作者:行者123 更新时间:2023-12-02 07:25:05 26 4
gpt4 key购买 nike

我的问题是,如何开发数据库项目并将其部署到使用外部表的 Azure SQL DB?

我正在使用 Visual Studio 2017 数据库项目来管理 Azure SQL 数据库。我一直遵循在 VS 中构建数据库的方式,然后点击发布按钮,效果很好。

现在我正在尝试添加外部表来执行弹性查询。在 SSMS 中,我为其创建了外部数据源和凭据,以及一个远程表:

CREATE EXTERNAL DATA SOURCE [RemoteServer] 
WITH (TYPE = RDBMS, LOCATION = N'myserver.database.windows.net',
CREDENTIAL = [RemoteUser], DATABASE_NAME = N'MyRemoteDb')
GO

CREATE EXTERNAL TABLE dbo.MyTable (
ID int not null,
MyColumn varchar(10) not null
) WITH (
DATA_SOURCE = [RemoteServer]
);
GO

(RemoteUser 的凭据也存在。)

SELECT * FROM MyTable  

产生了预期的结果,一切都很好。

现在我想将其添加到我的数据库项目中,以便可以通过发布(在 VS 中)进行部署,以便将来进行任何更改(并保存在源代码管理中)。

我收到错误:

SQL71501: External Data Source: [RemoteServer] has an unresolved reference to Database Scoped Credential [RemoteUser].

我可以通过将所有外部片段的属性设置为不构建来消除错误,但这违背了能够从 Visual Studio 进行发布的目的。我尝试从数据源中删除凭据,因此它不存在。它消除了错误,但发布由于缺少凭据而失败:

CREATE EXTERNAL DATA SOURCE [RemoteServer] 
WITH (TYPE = RDBMS, LOCATION = N'myserver.database.windows.net',
DATABASE_NAME = N'MyRemoteDb')
GO

SQL72014: .Net SqlClient Data Provider: Msg 46505, Level 16, State 15, Line 1 Missing required external DDL option 'CREDENTIAL'.)

有什么建议吗?

最佳答案

在撰写本文时,Azure 中的弹性查询仍处于预览状态,Microsoft 在概述页面中列出了许多限制。不幸的是,其中之一是关于通过 SSDT 编写外部表和外部数据源的脚本。值得注意的是here (请参阅列表中有关 SSDT 的第二项)。

关于sql - 如何通过 Visual Studio/SSDT 将外部表添加到 Azure SQL DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56779898/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com