Обнаружение ноля XML в запросе SQL - PullRequest
0 голосов
/ 30 августа 2011

Я использую MS SQL Server 2008. У меня есть столбец типа XML, в котором я храню результат некоторой сериализации. Когда значение сериализуемого объекта равно nothing / null, этот результат сохраняется в базе данных,

<StaticModifiedProduct xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:nil="true" />

Я строю запрос, который должен определить, представляют ли данные в столбце XML пустой объект или нет. Таким образом, другими словами, различайте, когда столбец имеет вышеуказанное значение или сериализованный объект.

Существуют ли какие-либо встроенные функции XML в SQL Server 2008, которые могут это сделать?

1 Ответ

1 голос
/ 31 августа 2011

Вот пример для чтения атрибута xsi: nil из элемента верхнего уровня:

declare @t table(x xml);
insert @t values (N'<StaticModifiedProduct xmlns:xsi="http://www.w3.org/2001/XMLSchema-    instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:nil="true" />')
select x.value('(StaticModifiedProduct/@xsi:nil)[1]', N'nvarchar(5)') from @t;
...