【发布时间】:2009-12-21 19:59:19
【问题描述】:
我正在寻找可以帮助我区分不同版本的 SQL Server 的 SQL 查询:
2000/2005/2008
开发/标准/EE。
【问题讨论】:
标签: sql-server versioning
我正在寻找可以帮助我区分不同版本的 SQL Server 的 SQL 查询:
2000/2005/2008
开发/标准/EE。
【问题讨论】:
标签: sql-server versioning
我倾向于使用这个简短的脚本:
SELECT
SERVERPROPERTY('productversion') as 'Product Version',
SERVERPROPERTY('productlevel') as 'Patch Level',
SERVERPROPERTY('edition') as 'Product Edition',
SERVERPROPERTY('buildclrversion') as 'CLR Version',
SERVERPROPERTY('collation') as 'Default Collation',
SERVERPROPERTY('instancename') as 'Instance',
SERVERPROPERTY('lcid') as 'LCID',
SERVERPROPERTY('servername') as 'Server Name'
这给了我一个类似的输出:
Product Version Patch Level Product Edition CLR Version Default Collation Instance LCID Server Name
10.0.2531.0 SP1 Developer Edition (64-bit) v2.0.50727 Latin1_General_CI_AS NULL 1033 XYZABC
【讨论】:
SELECT @@version
【讨论】:
【讨论】:
会
Select @@version
够了吗?
【讨论】:
选择@@版本
在我的系统上,这会返回:
Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (x64) 2009 年 3 月 29 日 10.11.52 版权所有 (c) 1988-2008 Windows NT 6.0 上的 Microsoft Corporate Enterprise Edition(64 位)(Build 6002:Service Pack 2 )
【讨论】:
我们将使用简单的技术来检测服务器类型,使用 serverproperty('ProductVersion') 获取选项列表访问 SERVERPROPERTY (Transact-SQL)。那么让我们看看有什么优点和缺点
DECLARE @sql2005Code varchar(255)
SET @sql2005Code = 'print ''SQL 2005 Code'' '
DECLARE @ver nvarchar(128)
SET @ver = CAST(serverproperty('ProductVersion') AS nvarchar)
SET @ver = SUBSTRING(@ver, 1, CHARINDEX('.', @ver) - 1)
-- SQL 2000
IF ( @ver = '8' ) BEGIN
print 'SQL 2000'
END
-- SQL 2005
ELSE IF ( @ver = '9' )BEGIN
exec (@sql2005Code)
END
这是我的完整条目,希望对您有所帮助。 Detect SQL server version
【讨论】:
最短的 SQL 查询是xp_msver
但是SELECT @@VERSION 做你想做的事
【讨论】: