Wenn Sie die XML ob gültig oder ungültig zu halten brauchen, könnten Sie eine Flagge auf dem Tisch wie IsValid (bit)
haben. Der Ladevorgang könnte dann eine einmalige Überprüfung dieser Daten durchführen, um zu prüfen, ob der XML-Code gültig ist, und das Flag basierend auf dem Ergebnis setzen. Auf diese Weise können Sie die gültige XML erhalten, indem Sie die Abfrage mit:
SELECT
CASE WHEN IsValid = 1 THEN CAST(xml_data as XML)
ELSE null
END
Wenn Sie nicht ungültige XML halten müssen, dann lehnen sie nur während des Ladens, um das Feld zu NULL
Einstellung, so dass die Abfrage aussehen würde, wie:
SELECT
CASE WHEN xml_data IS NOT NULL THEN CAST(xml_data as XML)
ELSE null
END
Beide Wege wird eine bessere Leistung geben, die für jede Abfrage durch eine SQL function
vorbei.
Welche Version von SQL Server? –
Microsoft SQL Server 2008 (SP1) – David
Können Sie nicht ** einen Prozess beim Laden läuft ** diese Daten ungültig XML ablehnen, sonst werden Sie diese Abfrage über eine Funktion, jedes Mal laufen Sie diese select-Anweisung verwenden, die nicht ist ideal für die Leistung. – christiandev