我正在使用SQL Server,我需要一個SQL查詢返回版本的年份。SQL查詢獲取sql年版本
我熟悉下一個方法:
select @@version
select SERVERPROPERTY('productversion')
,但我需要一個查詢將返回例如:
2008
或
2005
第一個查詢我提到需要髒解析,第二個返回一些產品編號。
有人知道這樣的查詢嗎?
謝謝!
我正在使用SQL Server,我需要一個SQL查詢返回版本的年份。SQL查詢獲取sql年版本
我熟悉下一個方法:
select @@version
select SERVERPROPERTY('productversion')
,但我需要一個查詢將返回例如:
2008
或
2005
第一個查詢我提到需要髒解析,第二個返回一些產品編號。
有人知道這樣的查詢嗎?
謝謝!
試試這個 - 它只是檢查版本號的前兩個字符,並返回相應的「年」爲SQL Server版本。
SELECT
'SQL Server Year ' +
CASE SUBSTRING(CONVERT(VARCHAR(50), SERVERPROPERTY('productversion')), 1, 2)
WHEN '8.' THEN '2000'
WHEN '9.' THEN '2005'
WHEN '10' THEN '2008'
WHEN '11' THEN '2012'
END
當然,你可以打包這件事到用戶定義函數,使其「更漂亮」
謝謝。它看起來更清楚。 – KernelMode
由於財產SERVERPROPERTY('productversion')
的第一個數字是主版本號:
major.minor.build.revision
然後你就可以創建一個包含每一個臨時表版本主要版本號及其年份。然後,你將結束與如下因素查詢:
DECLARE @productversion VARCHAR(100);
SELECT @productversion = CAST(SERVERPROPERTY('productversion') AS VARCHAR(100));
SELECT years.year, years.name
FROM
(
VALUES(9, '2005', 'SQL Server 2005'),
(10, '2008', 'SQL Server 2008 OR SQL Server 2008 R2'),
...
) AS years(majornumber, [year], name)
WHERE years.majornumber = LEFT(@productversion,
CHARINDEX('.', @productversion , 1) - 1);
另外:8 = SQL Server 2000,11 = SQL Server 2012 –
謝謝!我會用它。 你在哪裏找到主要版本和年度版本之間的匹配? – KernelMode
@kernelMode - 我使用它。以下是[** SQL Server版本**](http://social.technet.microsoft.com/wiki/contents/articles/783.sql-server-versions.aspx)頁面。但請注意,你正在尋找前兩個數字,主要。 –
SELECT 'SQL Server ' +
CASE CAST(SERVERPROPERTY('productversion') AS CHAR(2))
WHEN '8.' THEN '2000'
WHEN '9.' THEN '2005'
WHEN '10' THEN '2008/2008R2'
WHEN '11' THEN '2012'
WHEN '12' THEN '2014'
WHEN '13' THEN '2016'
END
輸出 -
----------------------
SQL Server 2016
應爲2008 R2返回哪一年? –
2008R2應該返回的年份是2008 – KernelMode
我認爲它會以 之類的東西結束選擇Cast(SubString(@@ version,CharIndex('2',@@ Version),4)as int) – bummi