Как вы проверяете, какая версия SQL Server для базы данных, используя TSQL? - PullRequest
123 голосов
/ 12 сентября 2008

Существует ли системная хранимая процедура для получения версии #?

Ответы [ 16 ]

1 голос
/ 15 мая 2013
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
1 голос
/ 05 июля 2010

Попробуйте это:

if (SELECT LEFT(CAST(SERVERPROPERTY('productversion') as varchar), 2)) = '10'
BEGIN
1 голос
/ 13 сентября 2008

Статья в КБ, ссылка на которую Пост Джо , отлично подходит для определения того, какие пакеты обновления установлены для любой версии. В том же духе в этой статье базы знаний сопоставляет номера версий с конкретными исправлениями и накопительными обновлениями, но это относится только к SQL05 SP2 и выше.

0 голосов
/ 17 февраля 2017

Попробуйте это:

SELECT @@VERSION[server], SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')
0 голосов
/ 21 октября 2016

Если все, что вам нужно, это основная версия по причинам T-SQL, ниже приводится год версии SQL Server для 2000 или более поздней версии.

SELECT left(ltrim(replace(@@Version,'Microsoft SQL Server','')),4)

Этот код корректно обрабатывает дополнительные пробелы и табуляции для различных версий SQL Server.

0 голосов
/ 04 марта 2016

Попробуйте это:

SELECT
    'the sqlserver is ' + substring(@@VERSION, 21, 5) AS [sql version]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...