{"id":2747,"date":"2009-05-09T22:36:52","date_gmt":"2009-05-09T20:36:52","guid":{"rendered":"http:\/\/www.glorf.it\/blog\/?p=2747"},"modified":"2009-05-09T22:36:52","modified_gmt":"2009-05-09T20:36:52","slug":"ist-das-ein-deutscher-oder-englischer-sql-server","status":"publish","type":"post","link":"http:\/\/www.glorf.it\/blog\/2009\/05\/09\/sql-talk\/sql-server\/ist-das-ein-deutscher-oder-englischer-sql-server","title":{"rendered":"Ist das ein deutscher oder englischer SQL Server?"},"content":{"rendered":"<p>Um automatisch entscheiden zu k&#246;nnen welchen Service-Pack (SP) oder Cummulative-Update-Package (CU) man einspielen muss, muss man wissen, ob der SQL-Server ein deutscher oder englischer ist. Fr&#252;her hatten wir es schon einfacher, weil wir da immer nur mit englischen SQL-Servern zu tun hatten, damals noch von Sybase. Seit dem Umstieg auf Microsoft setzen wir immer den korrekten, landessprachlichen SQL-Server ein: auf deutschem Windows ist ein deutscher SQL-Server und auf einem englischen ein englischer. <\/p>\n<p>Das haben wir der Auskunft des Microsoft-Supports zu verdanken, dass sie immer nur die landessprachlichen Versionen des SQL-Servers auf den entsprechenden Windows-Systemen testen, aber keine Mixe, wie z.B. den englischen SQL-Server auf einem deutschen Windows. Und nur diese Kombinationen werden von ihnen supportet. Aber ich will nicht lamentieren, so ist es einfach. Wir testen schlie&#223;lich auch nicht jede denkbare Kombination unserer Software mit verschiedenen Sprachversionen von Windows.<\/p>\n<p>Um herauszubekommen, was f&#252;r einen SQL-Server man vor sich hat, kann man die XP <a href=\"http:\/\/msdn.microsoft.com\/de-de\/library\/ms187372.aspx\">xp_msver<\/a> verwenden. Sie gibt einem neben der Sprache (im Datensatz &quot;Language&quot;) und Produktversion und sogar Product Key, auch Infos zum Windows-System aus (z.B. Hauptspeicher, Version, Anzahl Prozessoren). Um nur einen einzigen dieser Werte in eine Variable zu bekommen, die man dann auswerten kann, muss man das Result-Set in eine Tabellenvariable schreiben und dann gezielt auslesen, z.B. so:<\/p>\n<p><code lang=\"SQL\">DECLARE @MSVer\tTABLE (ID int,  Name  sysname, Internal_Value int, Value nvarchar(512));<br \/>\nINSERT @MSVer (ID, Name, Internal_Value, Value)<br \/>\n\tEXEC master.dbo.xp_msver N&#x0027;Language&#x0027;;<\/p>\n<p>SELECT Value AS [Language]<br \/>\n\tFROM @MSVer<br \/>\n\tWHERE Name = N&#x0027;Language&#x0027;;<\/p>\n<p>&#8230;<\/code><\/p>\n<p>L&#228;sst man die Optionsangabe hinter xp_msver weg, dann werden alle Optionen mit Wert ausgegeben.<\/p>\n<p>PS: Habe ich schon erw&#228;hnt, dass diese XP jeder ausf&#252;hren darf? Die Gruppe &quot;public&quot; hat Ausf&#252;hrungsrechte. Man k&#246;nnte sich &#252;berlegen diese Rechte nicht jedem geben zu wollen&#8230; \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Um automatisch entscheiden zu k&#246;nnen welchen Service-Pack (SP) oder Cummulative-Update-Package (CU) man einspielen muss, muss man wissen, ob der SQL-Server ein deutscher oder englischer ist. Fr&#252;her hatten wir es schon einfacher, weil wir da immer nur mit englischen SQL-Servern zu tun hatten, damals noch von Sybase. Seit dem Umstieg auf Microsoft setzen wir immer den [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[16],"tags":[493,929],"_links":{"self":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/2747"}],"collection":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/comments?post=2747"}],"version-history":[{"count":12,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/2747\/revisions"}],"predecessor-version":[{"id":2761,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/2747\/revisions\/2761"}],"wp:attachment":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/media?parent=2747"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/categories?post=2747"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/tags?post=2747"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}