0

我正在使用 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 列中的数据是否代表空对象。所以换句话说,区分列何时具有上述值,或序列化对象。

SQL Server 2008 中是否有任何内置的 XML 功能可以做到这一点?

4

1 回答 1

1

这是一个从顶级项目中读取 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;
于 2011-08-30T20:04:49.293 回答