Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

SQL server & product version

Îåêßíçóå áðü ôï ìÝëïò Bill . Τελευταία δημοσίευση από το μέλος Παναγιώτης Καναβός στις 08-04-2010, 12:30. Υπάρχουν 16 απαντήσεις.
Σελίδα 1 από 2 (17 εγγραφές)   1 2 >
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  23-03-2010, 09:30 57811

    SQL server & product version

    Θέλω με κάποιο τρόπο να προσδιορίζω πότε η έκδοση του SQL Server είναι 2000 / 2005 / 2008 έχω βρεί ότι υπαρχει το       select SERVERPROPERTY('productversion')  το οποίο πρώτο γράμμα είναι "8 για SQL2000" , "9 SQL 2005" & "10 SQL 2008" είναι ορθό αυτό ? ή υπάρχει κάποιος πιο καλύτερος τρόπος ? με το @@version επιστρέφει ένα string αλλά δε νομίζω να με βοηθά θα προτιμούσα αριθμό .

    select DATEDIFF(dd,GetDate(),'20140731') AS EΠΟΜΕΝΕΣ_ΔΙΑΚΟΠΕΣ
  •  23-03-2010, 11:15 57812 σε απάντηση της 57811

    Απ: SQL server & product version


    Για εκτέλεσε αυτό σε ένα query window

    EXEC xp_msver


    Νικόλαος Καντζέλης
    BSc, MSc, MCAS, MCPD, MCITP, MCTS,MCP, MCT
    http://www.nksolutions.gr
    http://dotnetstories.wordpress.com
    http://weblogs.asp.net/dotnetstories
    http://forum.dotnetnuke.gr
  •  23-03-2010, 11:40 57813 σε απάντηση της 57812

    Απ: SQL server & product version

    Οκ το FileVersion φαντάζομαι είναι : 2005...... για SQL Server 2005 , 2000..... SQL2000 etc.

    select DATEDIFF(dd,GetDate(),'20140731') AS EΠΟΜΕΝΕΣ_ΔΙΑΚΟΠΕΣ
  •  23-03-2010, 11:45 57814 σε απάντηση της 57812

    Απ: SQL server & product version

    Δεν υπάρχει λόγος να καλέσεις ένα stored procedure όταν έχεις ήδη το function SERVERPROPERTY. Είναι πολύ ευκολότερο να χρησιμοποιήσεις τα αποτελέσματα ενός function παρά ενός stored procedure σε T-SQL. Από τη στιγμή που η SERVERPROPERTY υποστηρίζεται από τον 2000 και μετά δεν θα έχεις πρόβλημα να τη χρησιμοποιήσεις. Συγκεκριμένα ΜΗΝ μπλέκεσαι με το FileVersion, όταν αυτό που ζητάς είναι το ProductVersion.

    Το μόνο θέμα (το οποίο φυσικά ισχύει ΚΑΙ για την xp_msver) είναι ότι θα πρέπει να σπάσεις το version string για να πάρεις τον πρώτο αριθμό, κάτι το οποίο δεν είναι και ό,τι ομορφότερο στην T-SQL.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  23-03-2010, 11:47 57815 σε απάντηση της 57813

    Απ: SQL server & product version

    Νομίζω ότι έχει πολλές πληροφορίες για το instance του Sql Server, που τρέχει στο σύστημα σου.
    Νικόλαος Καντζέλης
    BSc, MSc, MCAS, MCPD, MCITP, MCTS,MCP, MCT
    http://www.nksolutions.gr
    http://dotnetstories.wordpress.com
    http://weblogs.asp.net/dotnetstories
    http://forum.dotnetnuke.gr
  •  23-03-2010, 12:16 57816 σε απάντηση της 57815

    Απ: SQL server & product version

    Βασικά, επιστρέφει ένα υποσύνολο όσων η 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
  •  23-03-2010, 12:17 57817 σε απάντηση της 57814

    Απ: SQL server & product version

    Θα συμφωνήσω με τον Παναγιώτη ότι βολεύει περισσότερο η SERVERPROPERTY οκ thanks.

    select DATEDIFF(dd,GetDate(),'20140731') AS EΠΟΜΕΝΕΣ_ΔΙΑΚΟΠΕΣ
  •  23-03-2010, 23:46 57837 σε απάντηση της 57817

    Απ: SQL server & product version

    να συμφωνήσω και εγώ. αλλά αυτό που δεν μπορώ να καταλάβω, και για αυτό σου έδωσα την άλλη λύση,
    είναι ότι στο αρχικό σου Post, την γράφεις από μόνος σου την λύση. δηλαδή το ξέρεις αυτό που σου λέει ο Παναγιώτης.
    το γράφεις μόνος σου.....

    Η ερώτηση ποια είναι?

    Νικόλαος Καντζέλης
    BSc, MSc, MCAS, MCPD, MCITP, MCTS,MCP, MCT
    http://www.nksolutions.gr
    http://dotnetstories.wordpress.com
    http://weblogs.asp.net/dotnetstories
    http://forum.dotnetnuke.gr
  •  24-03-2010, 09:26 57839 σε απάντηση της 57837

    Απ: SQL server & product version

    Η ερώτηση μου ήταν αν η λύση που βρήκα ήταν η πιο ορθή ? Μιας και δεν με κ πολύ γέμιζε , νόμιζα πως υπάρχει κάτι πιο σταθερό πχ κατι που να με επιστρέφει πιο διακριτό χωρίς να κόβω strings ...!Δεν θα εγραφα κάτι έτσι απλά για να ανοίξω ένα post στο dotnetzone..! Απλά μάλλον δεν το διατύπωσα σωστά και σε μπέρδεψα λιγάκι

    select DATEDIFF(dd,GetDate(),'20140731') AS EΠΟΜΕΝΕΣ_ΔΙΑΚΟΠΕΣ
  •  24-03-2010, 11:48 57844 σε απάντηση της 57839

    Απ: SQL server & product version

    Καλά την έκανες την ερώτηση και ήταν από την αρχή κατανοητό τί ζητούσες. Δεν γνωρίζω κάποιο απλούστερο τρόπο να βρεις μόνο τη major version του SQL Server.

    Από την άλλη, το version string σου δίνει όχι μόνο το major version αλλά και ποιό service pack έχει εγκατασταθεί. Η πληροφορία αυτή μπορεί να είναι πιο χρήσιμη και από το να ξέρεις τη major version. Συνήθως ξέρεις την έκδοση της βάσης τη στιγμή που κάνεις την εγκατάσταση και δεν χρειάζεται ο κώδικας σου να ελέγχει για την έκδοση. Τα service packs όμως μπορεί να τα εγκαταστήσει κάποιος admin οποιαδήποτε στιγμή. Αν έχεις υλοποιήσει κάποια ειδική συμπεριφορά ανάλογα με το service pack θα πρέπει να ελέγχεις το version number κάθε φορά που τρέχει η εφαρμογή.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  07-04-2010, 14:18 57973 σε απάντηση της 57811

    Απ: SQL server & product version

    SELECT @@MICROSOFTVERSION / 0x01000000 AS theversion

    --HTH--

  •  07-04-2010, 20:37 57976 σε απάντηση της 57973

    Απ: SQL server & product version

    cool Πολύ καλό....!!!Smile   thanks man!!!

    select DATEDIFF(dd,GetDate(),'20140731') AS EΠΟΜΕΝΕΣ_ΔΙΑΚΟΠΕΣ
  •  07-04-2010, 21:56 57977 σε απάντηση της 57976

    Απ: SQL server & product version

    Θα σου πρότεινα να το σκεφτείς πριν χρησιμοποιήσεις την @@MICROSOFTVERSION. Είναι undocumented το οποίο σημαίνει ότι κανείς δεν σου εγγυάται ότι θα εξακολουθήσει να κάνει αυτό που νομίζεις. Δεν είναι τυχαίο ότι οι μόνες αναφορές σε αυτή σε ένα goolge search είναι από forums όπου κάποιος την προτείνει χωρίς να θυμάται συνήθως που άκουσε γι αυτήν.
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  07-04-2010, 22:03 57978 σε απάντηση της 57811

    Απ: SQL server & product version

    Αν και στην ερώτηση έχει απαντήσει ο Παναγιώτης, συμπληρωματικά ρίξε και μια ματιά εδώ. Είναι ό,τι πιο επίσημο.
    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  07-04-2010, 23:28 57979 σε απάντηση της 57977

    Απ: SQL server & product version

    ok το εψαξα αν και πλεον το έχω λύσει με το πιο πάνω εδώ και καιρό...απλά με έκανε εντύπωση προς στιγμήν. thanks.

    select DATEDIFF(dd,GetDate(),'20140731') AS EΠΟΜΕΝΕΣ_ΔΙΑΚΟΠΕΣ
Σελίδα 1 από 2 (17 εγγραφές)   1 2 >
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems