【问题标题】:How can I test the syntax on SQL Server 2005 without install it如何在不安装 SQL Server 2005 的情况下测试语法
【发布时间】:2015-02-25 10:01:41
【问题描述】:

我使用的是 SQL Server 2008。在我的本地开发中一切正常。

但是当我将程序和存储过程部署到使用 SQL Server 2005 的客户端工作站时,出现了错误。

我认为这是由 SQL Server 2005 和 2008 之间的语法问题引起的,因为我已经修复了一些部分并且可以修复。我用SQL Server 2008,在论坛里一一查找错误,比较费时间。

那么有没有什么方法可以不用安装SQL Server 2005编辑器来编写存储过程呢?

感谢您的帮助

【问题讨论】:

  • 您可以创建一个测试数据库并将其兼容级别设置为90 (SQL Server 2005)。在这种情况下,应调用 SQL Server 2005 不支持的任何语法。
  • SQL server express 2005 是收费的下载和使用。不安装速成版有什么限制吗?是的,它有最大 4 G 数据库的限制microsoft.com/en-us/download/details.aspx?id=21844
  • @marc_s 你介意解释一下如何实现这一点吗?谢谢

标签: sql sql-server sql-server-2008 sql-server-2005 version


【解决方案1】:

使用数据库的兼容性级别,您可以在 SQL Server 2008 中创建一个数据库,然后使其外观、感觉和行为都像 SQL Server 2005

步骤:

  1. 创建您的数据库 - 可视化或使用

    CREATE DATABASE MySampleDB
    

    这会在您的服务器上创建一个数据库,默认兼容级别由您服务器上的model 数据库定义。在 SQL Server 2008 机器上,这通常是兼容级别 100

  2. 检查兼容性级别:

    USE MySampleDB
    GO
    SELECT name, compatibility_level
    FROM sys.databases
    WHERE database_id = DB_ID()
    
  3. 现在将兼容级别设置为 90 以模拟 SQL Server 2005 数据库:

    ALTER DATABASE MySampleDB
    SET COMPATIBILITY_LEVEL = 90
    

现在,您有一个MySampleDB,它的行为和外观与 SQL Server 2005 相似 - SQL Server 2005 中不可用的任何 T-SQL 构造也会导致该数据库出现问题和错误! (例如 DATE 数据类型或其他东西)

【讨论】:

  • 感谢您的更新。我稍后会测试它。一旦没问题,我将标记为已接受的答案。谢谢
  • 请注意,要允许级别 90 (2005),您需要安装最大的 SQL 2012。之后的版本不能回退到 2005 兼容性。查看此列表以查看哪个版本支持哪个回退:docs.microsoft.com/en-us/sql/t-sql/statements/…
【解决方案2】:

您可以使用sql fiddle 完成此操作

也可以使用Vertabelo,很简单。它将自动为设计的表生成查询。

【讨论】:

  • 这两个在线平台很棒,但它们都不支持SQL 2005。您还有其他建议吗?感谢您的回复。
  • sqlfiddle 仅支持 2008 版本
  • 是的。我知道,但我的客户端工作环境是 SQL 2005。
猜你喜欢
  • 1970-01-01
  • 2011-08-06
  • 2011-01-18
  • 1970-01-01
  • 1970-01-01
  • 2012-03-28
  • 1970-01-01
  • 1970-01-01
  • 2021-06-10
相关资源
最近更新 更多