【问题标题】:SQL Server : designer incompatible generate scriptSQL Server:设计器不兼容的生成脚本
【发布时间】:2019-11-08 07:02:28
【问题描述】:

我们的测试盒使用 SQL Server 2012,生产盒使用 SQL Server 2005。最近,我们转向了自动部署脚本,它执行 SQL 脚本作为我们部署过程的一部分。

我们遇到了一个问题,SSMS 生成的脚本在设计器中使用“生成脚本”输出与 SQL Server 2005 不兼容的脚本。它添加了语句 SET (LOCK_ESCALATION = TABLE),即 SQL Server 2008+

我们已尝试将数据库的兼容性更改为 SQL Server 2005,但这并没有解决问题。有趣的是,当使用 Script Table As > Create To > New Query Window 时,不包括此语句。

有一个 SSMS 设置“将脚本设置匹配到源 = false”,但是,这需要您全局设置 SQL Server 版本,这对我们来说不是一个选项,因为我们维护各种 SQL Server 版本。有没有办法降低“生成脚本”的兼容性?

【问题讨论】:

  • 你不能升级你的产品盒吗? 2005年是古老的历史,出了几年的支撑。你真的不应该在这样的东西上运行实时代码。最好还是在同一个版本上运行两个环境,这样在部署到生产环境时就不会出现意外问题。
  • 真的需要升级。不仅仅是 SQL Server 2005 在十年前就停止了支持。 2012 年甚至 2008 年的测试结果不适用于 2005 年。无论如何,即使 SQL Server 2012 也不支持,最早支持的版本是 2016 年。自 2016 年以来,开发者版是免费的,以前的企业版功能,如分区、列存储和压缩适用于所有版本,甚至是 Express

标签: sql-server sql-server-2005 sql-server-2012 ssms


【解决方案1】:

在 SSMS 中运行“生成脚本”任务时,您可以定义要为其创建脚本的服务器版本:

这应确保不使用 SQL Server 2005 中不存在的命令或选项。

但我赞同@ADyson 的观点 - SQL Server 2005 已经死气沉沉,在如此旧版本的 SQL Server 上运行生产代码是有风险的......你 真的应该尽快升级到更新的版本!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 2019-10-17
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 2014-02-18
    相关资源
    最近更新 更多