SQL Server @@version és SERVERPROPERTY változások

Néhány nappal ezelőtt jöttek ki az alábbi SQL Server frissítések:

Ezek a frissítések egy régi és sok helyen (rosszul) alkalmazott funkciót is megváltoztatnak: ez pedig a @@VERSION. Lássuk, hogyan is nézett ki eddig a kimenet:

Ugye ezen látszik, hogy egy SQL Server 2014 SP1 CU2 verzióról van szó. Most nézzük meg ugyan ezt egy CU3 frissítéssel:

Aki eddig arra használta a @@VERSION parancsot, hogy megnézze az első zárójelben, hogy X64 vagy X86 van, annak ez most igen csak nagy probléma, mert ettől a frissítéstől kezdődően a Service Pack és a Cummulative Update információk lesznek ott.

Alapvetően nem a @@VERSION a legjobb módja, hogy verzióval kapcsolatos információkat megnézzük, hanem a SERVERPROPERTY:

 1SELECT
 2SERVERPROPERTY('ProductLevel') AS ProductLevel,
 3SERVERPROPERTY('ProductUpdateLevel') AS ProductUpdateLevel,
 4SERVERPROPERTY('ProductUpdateReference') AS ProductUpdateReference,
 5'https://support.microsoft.com/en-us/kb/' + CAST(SERVERPROPERTY('ProductUpdateReference') AS varchar) AS ProductUpdateReferenceUrl,
 6SERVERPROPERTY('ProductVersion') AS ProductVersion,
 7SERVERPROPERTY('ProductMajorVersion') AS ProductMajorVersion,
 8SERVERPROPERTY('ProductMinorVersion') AS ProductMinorVersion,
 9SERVERPROPERTY('ProductBuild') AS ProductBuild
10GO

Amit itt észre kell venni, azok az új paraméterek:

  • ProductUpdateLevel: ez a CU számát adja meg, ha nem értelmezhető, akkor NULL
  • ProductUpdateReference: ez a KB cikk száma, látható, hogy fel is hasznaltam az url generáláshoz.
  • ProductBuildType: ez a build típusa, ami lehet GDR - hagyományos release, OD - speciálisan egy ügyfélnek lett kiadva, vagy NULL.

Személy szerint örülök ezeknek a változásoknak, azonban azzal is tisztában kell lenni, hogy a @@version kimenetének változtatása sok rendszer esetén lehet gond.