9 aprile 2016 15:13
Conoscere la versione di Sql Server e quali SP e CU è installato
Per conoscere la versione (es. 2005/8/12/14/16), edizione (express, standard, enterprise, ecc.), Service Pack (SP) e Cumulative Update (CU) vi sono molti modi.
Il numero di release (es. 12.0.4439) è facilmente ricavabile già dalla console di Management Studio vicino al nome del server
Il numero però ci dice poco, a meno di non consultare qualche tabella di decodifica come questa volenterosamente aggiornata di un blog privato.
Il metodo più semplice e che conoscevo e uso fin dalle versioni 7 o precedenti è una variabile di sistema chiamata @@VERSION
SELECT @@VERSION
che a seconda della versione installata ci fornisce più o meno informazioni. Prima dell'ultimo CU 5 di Sql Server 2014 (12.0.4439) , l'output era molto scarno come possiamo vedere ad esempio se la lanciamo su un Sql Server di Azure che è ancora una 2014 pre-SP1
Microsoft SQL Azure (RTM) - 12.0.2000.8
Mar 25 2016 15:11:30
Copyright (c) Microsoft Corporation
Su un'installazione Sql2014 SP1 CU5 otteniamo invece anche l'indicazione del Service Pack e del CU installato, oltre alle indicazioni di Edizione
Microsoft SQL Server 2014 (SP1-CU5) (KB3130926) - 12.0.4439.1 (X64)
Feb 15 2016 12:12:43
Copyright (c) Microsoft Corporation
Express Edition (64-bit) on Windows NT 6.3 <X64> (Build 10586: )
Se abbiamo una versione inferiore e vogliamo comunque ottenere queste informazioni, possiamo ricorrere a delle SERVERPROPERTY
SELECT SERVERPROPERTY('productversion') AS ProductVersion ,
SERVERPROPERTY('productlevel') AS ProductLevel ,
SERVERPROPERTY('edition') AS Edition ,
SERVERPROPERTY('PRODUCTUPDATELEVEL') AS ProductUpdateLevel;
che ci ritornano
Attenzione, l'ultima proprietà SERVERPROPERTY('PRODUCTUPDATELEVEL') è disponibile solo anch'essa da 2014CU5, per le precedenti ritorna NULL (e quindi il modo per sapere che CU abbiamo installato è quella della tabella di decodifica).