【问题标题】:Not able to build Visual Studio Database Project targeting Azure SQL Database when using AT TIME ZONE使用 AT TIME ZONE 时无法构建面向 Azure SQL 数据库的 Visual Studio 数据库项目
【发布时间】:2020-04-28 12:01:49
【问题描述】:

我们有一个Visual Studio Database Project,我们正尝试将其移至 Azure SQL 数据库。我们的一些视图使用了 Azure SQL 数据库支持的AT TIME ZONE,但是当我在项目属性中将数据库目标平台切换到 Microsoft Azure SQL 数据库时,它无法构建并出现错误:

错误:SQL46010:TIME 附近的语法不正确。

我已直接连接到 Azure 中的数据库,我可以使用 AT TIME ZONE,但我无法从我的项目中创建或发布 DACPAC 文件。

This SO answer 建议将目标切换到 SQL Server 2016,但您无法将 DACPAC 部署到 Azure。会报错

将 SQL Server 2016 指定为目标平台的项目无法发布到 Microsoft Azure SQL 数据库 v12。

从 Visual Studio 或使用 sqlpackage.exe 的命令行发布时。 (与所有目标相同)。

这似乎是 Visual Studio Data Tools 中的一个长期存在的错误,因此其他人一定遇到过它。有人有解决方法或建议吗?

【问题讨论】:

标签: sql-server visual-studio azure azure-sql-database


【解决方案1】:

这只是问题第二部分的答案。

在将.dacpac 从免费的 azure sql 数据库发布到基本计划中的数据库时,我遇到了同样的错误。

将 SQL Server 2016 指定为目标平台的项目无法发布到 Microsoft Azure SQL 数据库 v12。

我通过在Publish Data-tier ApplicationAdvance 设置中检查Allow incompatible platform 发现了这一点。

【讨论】:

    【解决方案2】:

    我通过另一个渠道找到了答案。这是 Visual Studio 16.4 和 16.5 的当前预览版中的一个错误。

    Visual Studio 16.4 版本删除了对 Microsoft Azure SQL 数据库 V11 的支持。在这样做的过程中,他们删除了 Microsoft Azure SQL Database V12 的项目目标,使 Microsoft Azure SQL Database 成为唯一的选择。这个新选项的目的是切换到 V12,但有一个错误,它仍然针对 V11。

    在 Visual Studio 的未来更新中解决此问题之前,解决方法是手动编辑 SQLPROJ 文件并更改行;

    <DSP>Microsoft.Data.Tools.Schema.Sql.SqlAzureDatabaseSchemaProvider</DSP>
    

    加入V12来制作;

    <DSP>Microsoft.Data.Tools.Schema.Sql.SqlAzureV12DatabaseSchemaProvider</DSP>
    

    保存并重新打开解决方案。它现在可以编译,我可以部署到 Azure。

    【讨论】:

    • Rob 在我分享的第一篇文章中作者也这样做了medium.com/modern-stack/…
    • 您可以接受它作为答案。这对其他社区成员可能是有益的。谢谢。
    • @AlbertoMorillo 在文章中,作者在编译时使用属性更改了构建目标,我试图在 Visual Studio 中更改它,但已删除 V12 选项。我以为因为它已被删除,所以它不再是一个有效的编译目标,这是不正确的。
    • 太棒了!谢谢
    • 如果你没有看到V12选项,只有Microsoft Azure SQL Database选项,选中它,然后检查SQLPROJ文件,如果是&lt;DSP&gt;Microsoft.Data.Tools.Schema.Sql.SqlAzureV12DatabaseSchemaProvider&lt;/DSP&gt;就可以了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-18
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多