【问题标题】:Which version of SQL Server am I running? [closed]我运行的是哪个版本的 SQL Server? [关闭]
【发布时间】:2009-12-21 19:59:19
【问题描述】:

我正在寻找可以帮助我区分不同版本的 SQL Server 的 SQL 查询:

2000/2005/2008

开发/标准/EE。

【问题讨论】:

    标签: sql-server versioning


    【解决方案1】:

    我倾向于使用这个简短的脚本:

    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
    

    【讨论】:

      【解决方案2】:
      SELECT @@version
      

      【讨论】:

        【解决方案3】:

        【讨论】:

          【解决方案4】:

          Select @@version 
          

          够了吗?

          【讨论】:

            【解决方案5】:

            选择@@版本

            在我的系统上,这会返回:

            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 )

            【讨论】:

              【解决方案6】:

              我们将使用简单的技术来检测服务器类型,使用 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

              【讨论】:

                【解决方案7】:

                最短的 SQL 查询是xp_msver

                但是SELECT @@VERSION 做你想做的事

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2012-11-23
                  • 2017-09-06
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多