是否有系統存儲過程來獲取版本#?如何使用TSQL檢查數據庫的SQL Server版本?
回答
嘗試
SELECT @@VERSION
或爲SQL Server 2000及以上如下更易於解析:)
SELECT SERVERPROPERTY('productversion')
, SERVERPROPERTY('productlevel')
, SERVERPROPERTY('edition')
第二個適用於我,我添加檢查維基百科,以瞭解8.00.xx意味着SQL服務器2000 – pdem 2015-04-28 07:52:24
SELECT @@ VERSION
的與Joe's post鏈接的KB文章非常適合確定wh已爲任何版本安裝了服務包。沿着同樣的路線,this KB article將版本號映射到特定的修補程序和累積更新,但它僅適用於SQL05 SP2及更高版本。
這裏有點腳本的我用於測試服務器是否2005或更高
declare @isSqlServer2005 bit
select @isSqlServer2005 = case when CONVERT(int, SUBSTRING(CONVERT(varchar(15), SERVERPROPERTY('productversion')), 0, CHARINDEX('.', CONVERT(varchar(15), SERVERPROPERTY('productversion'))))) < 9 then 0 else 1 end
select @isSqlServer2005
注:從原來的答案更新(見註釋)
剛剛發現這不工作SQL 2008,因爲'10'小於'9'。 您可以更改更新後的答案中的值,以使用8,9,10或任何您需要測試的值作爲最小值。 – 2011-06-29 07:01:57
試試這個:
if (SELECT LEFT(CAST(SERVERPROPERTY('productversion') as varchar), 2)) = '10'
BEGIN
對於SQL Server 2000及以上版本,我更喜歡以下解析喬的答案:
declare @sqlVers numeric(4,2)
select @sqlVers = left(cast(serverproperty('productversion') as varchar), 4)
給出瞭如下結果:
Result Server Version 8.00 SQL 2000 9.00 SQL 2005 10.00 SQL 2008 10.50 SQL 2008R2 11.00 SQL 2012 12.00 SQL 2014
我喜歡這一點,很好,簡單並且可以跨服務器版本重新使用。我使用了上面稍微修改後的版本:`select cast(serverproperty('productversion')as varchar)as [result]`。我的意思是,我可以通過ADO.NET的`ExecuteScalar`執行上述操作,然後將結果字符串解析爲`System.Version`對象。另外,將它轉換爲數字時,對於尾隨零和版本段數字計數,版本號具有不同的含義,而字符串可以解析爲有效的「版本」對象,而不會損失每個版本組件的一致性。 – 2015-04-24 08:05:49
我知道這是一個老的文章,但我更新了link發現(這是死定的2013年12月3日)的代碼張貼Matt Rogish:
DECLARE @ver nvarchar(128)
SET @ver = CAST(serverproperty('ProductVersion') AS nvarchar)
SET @ver = SUBSTRING(@ver, 1, CHARINDEX('.', @ver) - 1)
IF (@ver = '7')
SELECT 'SQL Server 7'
ELSE IF (@ver = '8')
SELECT 'SQL Server 2000'
ELSE IF (@ver = '9')
SELECT 'SQL Server 2005'
ELSE IF (@ver = '10')
SELECT 'SQL Server 2008/2008 R2'
ELSE IF (@ver = '11')
SELECT 'SQL Server 2012'
ELSE IF (@ver = '12')
SELECT 'SQL Server 2014'
ELSE IF (@ver = '13')
SELECT 'SQL Server 2016'
ELSE
SELECT 'Unsupported SQL Server Version'
SELECT
@@SERVERNAME AS ServerName,
CASE WHEN LEFT(CAST(serverproperty('productversion') as char), 1) = 9 THEN '2005'
WHEN LEFT(CAST(serverproperty('productversion') as char), 2) = 10 THEN '2008'
WHEN LEFT(CAST(serverproperty('productversion') as char), 2) = 11 THEN '2012'
END AS MajorVersion,
SERVERPROPERTY ('productlevel') AS MinorVersion,
SERVERPROPERTY('productversion') AS FullVersion,
SERVERPROPERTY ('edition') AS Edition
在單隻得到了重大的SQL Server版本選擇:
SELECT SUBSTRING(ver, 1, CHARINDEX('.', ver) - 1)
FROM (SELECT CAST(serverproperty('ProductVersion') AS nvarchar) ver) as t
返回8
爲SQL 2000,9
2005 SQL等等(測試到2012年)。
還有一個擴展存儲的過程可用於以查看版本信息:
exec [master].sys.[xp_msver]
CREATE FUNCTION dbo.UFN_GET_SQL_SEVER_VERSION
(
)
RETURNS sysname
AS
BEGIN
DECLARE @ServerVersion sysname, @ProductVersion sysname, @ProductLevel sysname, @Edition sysname;
SELECT @ProductVersion = CONVERT(sysname, SERVERPROPERTY('ProductVersion')),
@ProductLevel = CONVERT(sysname, SERVERPROPERTY('ProductLevel')),
@Edition = CONVERT(sysname, SERVERPROPERTY ('Edition'));
--see: http://support2.microsoft.com/kb/321185
SELECT @ServerVersion =
CASE
WHEN @ProductVersion LIKE '8.00.%' THEN 'Microsoft SQL Server 2000'
WHEN @ProductVersion LIKE '9.00.%' THEN 'Microsoft SQL Server 2005'
WHEN @ProductVersion LIKE '10.00.%' THEN 'Microsoft SQL Server 2008'
WHEN @ProductVersion LIKE '10.50.%' THEN 'Microsoft SQL Server 2008 R2'
WHEN @ProductVersion LIKE '11.0%' THEN 'Microsoft SQL Server 2012'
WHEN @ProductVersion LIKE '12.0%' THEN 'Microsoft SQL Server 2014'
END
RETURN @ServerVersion + N' ('[email protected] + N'), ' + @Edition + ' - ' + @ProductVersion;
END
GO
選擇 '的SQLServer是' +子(@@ VERSION,21,5)「的SQL版本'
如果所有你想要的是T-SQL原因的主要版本,下面給出SQL Server 2000或更高版本的年份。
SELECT left(ltrim(replace(@@Version,'Microsoft SQL Server','')),4)
此代碼優雅地處理多餘的空格和選項卡的SQL Server的各種版本。
試試這個:
SELECT @@VERSION[server], SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')
嘗試
SELECT @@MICROSOFTVERSION/0x01000000 AS MajorVersionNumber
欲瞭解更多信息,請參閱:Querying for version/edition info
- 1. 查找但SQL Server數據庫版本
- 2. 如何版本SQL Server數據庫?
- 3. 檢查SQL Server數據庫上的託管程序集版本
- 4. 使用TSQL獲取SQL Azure數據庫版本和Service_Objective
- 5. 如何使用Powershell檢查SQL Server版本?
- 6. TSQL在線檢查數據庫實例
- 7. 更改SQL Server數據庫版本
- 8. 版本控制SQL Server數據庫
- 9. 如何維護SQL Server數據庫的調試版本?
- 10. 使用sql查詢查詢完整的Informix數據庫版本
- 11. 如何獲取.MDF數據庫的內部SQL Server數據庫版本號?
- 12. 如何使用Git版本控制我的SQL Server數據庫文件?
- 13. 檢查SQL Server數據庫文件中未使用的空間
- 14. 如何使用tsql獲取SQL Server實例中的所有數據庫名稱?
- 15. 如何在WIX中檢查SQL Server與數據庫的連接
- 16. 如何檢查sp_dbcmptlevel之後的SQL Server數據庫兼容性?
- 17. 使用十六進制查看器檢查數據庫版本
- 18. 如何查詢SQL Server數據庫?
- 19. 如何檢查SQL Server的版本是什麼?
- 20. FluentNHibernate,如何驗證/檢查數據庫? (SQL Server Express)
- 21. 如何檢查數據庫兼容級別SQL Server?
- 22. 此版本的SQL Server不支持「CREATE CREDENTIAL」 - Azure SQL數據庫
- 23. TSQL:用於訪問數據庫的變量(SQL Server 2008)
- 24. SQL Server數據庫查詢
- 25. 兩個SQL Server數據庫之間的數據同步檢查
- 26. 如何使用PHP檢查做了SQL數據庫已經有
- 27. SQL查詢數據庫的Microsoft SQL Server
- 28. 如何使SQL Server數據庫設置
- 29. EF如何檢查數據庫是否是最新版本?
- 30. SQL Server的檢查,如果你有訪問數據庫
http://blog.devstone.com/aaron/default,date,2006-12 -15.aspx – 2008-09-12 16:31:04