根据脚本中的服务器设置SQL Server兼容级别

时间:2016-06-23 19:21:08

标签: sql-server sql-server-2008 tsql sql-server-2012

当我尝试在脚本中设置SQL Server的兼容级别时,SQL Server 2008会出错。我希望此脚本与我们目前支持的所有服务器(2008年,2012年或2014年)相同。< / p>

"1 2 1"

以下是错误:

-- Set database compatibility --
IF SUBSTRING(CAST(SERVERPROPERTY('ProductVersion') AS VARCHAR),1 ,2) >= 11
BEGIN
    RAISERROR ('sql server 12 and above', 10, 1)

    ALTER DATABASE JJAI_TESTDB SET COMPATIBILITY_LEVEL = 110
END
ELSE
BEGIN
    RAISERROR ('sql server 2008',10, 1)

    ALTER DATABASE JJAI_TESTDB SET COMPATIBILITY_LEVEL = 100
END
GO

1 个答案:

答案 0 :(得分:0)

好的,我可以通过在下面的执行语句中执行alter语句来实现。

/* Set database compatibility */
IF SUBSTRING(CAST(SERVERPROPERTY('ProductVersion') AS VARCHAR),1 ,2) >= 11
    EXECUTE ('ALTER DATABASE $(DATABASENAME) SET COMPATIBILITY_LEVEL = 110')
ELSE
    EXECUTE ('ALTER DATABASE $(DATABASENAME) SET COMPATIBILITY_LEVEL = 100')
GO