Ich versuche, ein XML-Feld zu analysieren, das Teil der Data Warehouse-Datenbank von SCOM 2007 ist, und habe viele Beispiele gefunden, die ähnliche Szenarien zeigen Wenn ich die Abfrage ausführen, wird ein Fehler angezeigt.SQL-Abfrage zum Analysieren des XML-Felds und Abrufen von Werten
Hier ist ein Beispiel, eine Zeile von tausend oder so Ich muss dies gegen ausführen, wo ich die Werte England und UK (die GUIDs, die das Tag umfassen konsistent sind für jeden Datentyp, also nie ändern wollen) und kann verwendet werden, um usw.) abzufragen. Natürlich hat jede Zeile einen anderen Stadt- und Ländercode und das möchte ich erfassen.
Der Tabellenname ist dbo.ManagedEntityProperty und der Spaltenname ist PropertyXML
<Root>
<Property Guid="AFB4F9E6-BF48-1737-76AD-C9B3EC325B97">192.168.1.0</Property>
<Property Guid="5C324096-D928-76DB-E9E7-E629DCC261B1">WASPDC01.LIV10.Local</Property>
<Property Guid="96981E2D-DECF-7CB7-DEC5-5C52046B68A6">192.168.1.0</Property>
<Property Guid="FA3887C3-F274-306A-867C-37105A190F78">England</Property>
<Property Guid="61AA7309-595F-576E-337E-E9335E5CA773">255.255.255.0</Property>
<Property Guid="F8ABF27F-A169-6FCD-1862-C06F1DB4BF24">UK</Property>
<Property Guid="B832B2DE-A649-60A1-AC13-06F1EC601E5F">Active</Property>
</Root>
Jede Beratung oder Beratung? Ich habe versucht, Ratschläge gemäß SQL Server query xml attribute for an element value zu implementieren, aber ich bin immer noch sehr in meiner SQL-XML-Anfrage-Kindheit und musste noch nie so etwas machen.
Brilliant, rea lly schnelle Antwort dort und es funktioniert super. Ich musste nur den Deklarationsteil optimieren, da ich SQL 2005 verwende, aber das ist mein Fehler, weil ich Ihnen die Version nicht gesagt habe :) – user2215800
Wenn ich die Ausgabe anzeigen wollte, die zwei XML-Werte in der gleichen Zeile, aber unterschiedlichen Spalten Wie würde ich das machen? Ich versuche, meinen Kopf um das "(.)" Zu bringen und wie ich das Skriptverhalten von diesem ändern könnte, um vielleicht jede GUID separat anzusprechen, anstatt alles aufzuzählen und dann zu filtern. Weißt Du, was ich meine? – user2215800
@ user2215800: meine Antwort aktualisiert –