2008-09-09 6 views
11

Angenommen, ich habe Datenstrukturen als XML (XML-Datentyp) in SQL Server gespeichert. Ein Benutzer möchte einen Datensatz herausziehen, wenn innerhalb der Daten eine bestimmte Zeichenfolge gefunden wird.Die beste Möglichkeit, in Daten zu suchen, die als XML in SQL Server gespeichert sind?

Was sind meine Möglichkeiten, dies zu implementieren, und was ist der beste Weg, dies zu tun?

Beachten Sie, dass jeder Datensatz unterschiedliche XML-Datenstrukturen haben kann.

+0

@patrick die Antworten sind besser, auf jeden Fall. – Will

+0

Ich denke, es ist ein bisschen frech, dass diese Frage als ein Duplikat einer späteren Frage markiert ist ... –

Antwort

3

Ich fand die XQuery Unterstützung in SQL 2005 sehr nützlich.

-1

Ich denke, wenn Sie denken, dass Sie die XML regelmäßig suchen müssen, würden Sie eine Menge Schmerz sparen, indem Sie einige der Felder aus dem XML in ihre eigenen Spalten in der Datenbank extrahieren. Das Speichern von XML als Textstück ist nicht sehr datenbankfreundlich - es kann nicht einfach indexiert, zwischengespeichert oder in komplexen Abfragen verwendet werden.

-1

Wenn Ihr Xml stark typisiert ist, da Sie ein Schema haben, dann verwenden Sie den XQuery-Kram und erstellen Sie Ansichten über dem oberen Rand Ihrer Xml-Spalten. Das stark typisierte Zeug ist keineswegs eine Voraussetzung, aber es erlaubt Ihnen, Ihre Ansichten in vorhersagbarer Weise zu erstellen.

5

Sie können das XML als Zeichenfolge ohne XQuery durchsuchen, indem Sie es in eine Zeichenfolge konvertieren und dann LIKE verwenden. Da eine berechnete Spalte jedoch nicht Teil einer WHERE-Klausel sein kann, müssen Sie sie wie folgt in eine andere SELECT-Anweisung einfügen:

+0

Wenn die XML mit weniger Länge ist, ist es in Ordnung, aber wenn es eine große Länge hat, funktioniert es nicht richtig. Nur Teildaten, die als Zeichenkettenrest der Daten konvertiert wurden, wurden ignoriert. – vignesh

+0

@vignesh Sie haben Recht. Wenn Sie mehr als 2 Gigabyte Daten in Ihrem XML haben, wird varchar (MAX) nicht ausreichen – Squazz

Verwandte Themen