Βασικά, επιστρέφει ένα υποσύνολο όσων η SERVERPROPERTY, με τη διαφορά ότι είναι πιο δύσχρηστη γιατί επιστρέφει πίνακα αντί μία τιμή. Ο ironbill καλά έκανε και διάλεξε την SERVERPROPERTY στην αρχή.
Για να πάρεις το major version number από την SERVERPROPERTY εκτελείς αυτό:
declare @ver as nvarchar(128)
set @ver=cast(SERVERPROPERTY('ProductVersion') as nvarchar)
select @ver
select substring(@ver,0,charindex('.',@ver))
ή ακόμα και αυτό, αν θέλεις τα πάντα σε μία γραμμή
select substring(
cast(SERVERPROPERTY('ProductVersion') as nvarchar),0,
charindex('.',cast(SERVERPROPERTY('ProductVersion') as nvarchar))
)
Για να χρησιμοποιήσεις την xp_msver θα πρέπει να βάλεις πρώτα τα αποτελέσματα σε ένα temporary πίνακα ή table variable ... και μετά να κάνεις το parsing όπως παραπάνω.
declare @versionTable as table([Index] int,Name nvarchar(255),Internal_Value int,Character_Value nvarchar(255))
insert into @versionTable
exec xp_msver 'ProductVersion'
declare @ver as nvarchar(128)
select @ver=character_value from @versionTable
select substring(@ver,0,charindex('.',@ver))
Αφού ο ironbill βρήκε μία καλύ λύση, γιατί να την αλλάξει ?
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos