如何在不安装SQL Server 2005的情况下测试其语法

3
我正在使用SQL Server 2008,在本地开发环境中一切都很顺利。但是当我将程序和存储过程部署到客户端工作站(使用SQL Server 2005)时,出现了错误。我认为这是SQL Server 2005和2008之间语法问题造成的,因为我已经修复了其中的一些部分并解决了问题。但是,当我在SQL Server 2008中搜索每一个错误时,会非常耗费时间。所以,有没有办法可以在不安装SQL Server 2005的情况下使用SQL Server 2005编辑器编写存储过程呢?谢谢您的帮助!

你可以创建一个测试数据库,并将其兼容性级别设置为90(SQL Server 2005)。在这种情况下,应该指出任何SQL Server 2005不支持的语法。 - marc_s
SQL Server Express 2005是免费下载和使用的。关于不安装Express版本是否有任何限制?是的,它有最大4G数据库的限制。http://www.microsoft.com/en-us/download/details.aspx?id=21844 - Shanky
@marc_s 您介意更详细地解释如何实现这个吗? 谢谢 - user3423149
2个回答

1
你可以使用 sql fiddle 来完成,也可以使用非常简单的 Vertabelo。它会自动生成设计表的查询语句。

1
这两个在线平台非常棒,但它们都不支持SQL 2005。您有其他建议吗?感谢您的回复。 - user3423149
sqlfiddle仅支持从2008版本开始。 - Vignesh Subramanian
是的,我知道,但我的客户工作环境是在SQL 2005中。 - user3423149

1
使用数据库的兼容性级别,您可以在SQL Server 2008中创建一个数据库,但是让它看起来、感觉和行为都像SQL Server 2005。
步骤:
  1. Create your database - either visually or with

    CREATE DATABASE MySampleDB
    

    This creates a database on your server, in the default compatibility level as defined by the model database on your server. On a SQL Server 2008 machine, this typically will be a compatibility level of 100.

  2. Check the compatibility level:

    USE MySampleDB
    GO
    SELECT name, compatibility_level
    FROM sys.databases
    WHERE database_id = DB_ID()
    
  3. Now set the compatibility level to 90 to emulate a SQL Server 2005 database:

    ALTER DATABASE MySampleDB
    SET COMPATIBILITY_LEVEL = 90
    
现在,您有一个名为MySampleDB的数据库,它看起来和操作起来像SQL Server 2005 - 在此数据库中,任何不可用于SQL Server 2005的T-SQL结构都应该引起问题和错误!(例如DATE数据类型或其他内容)

谢谢您的更新。我稍后会进行测试,如果一切正常,我会将其标记为接受的答案。谢谢。 - user3423149
请注意,为了允许级别90(2005),您需要安装最高SQL 2012版本。之后的版本无法回退到2005兼容性。请参阅此列表以查看哪个版本支持哪个回退:https://learn.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-compatibility-level - NKCSS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接