我已经将包含258个元素的xsd导入到我的SQL Server 2012实例中。必须在最终的xml中存在所有258个元素。我遇到的问题是它们中的246个将包含在xsd中标识的默认值,而我不知道如何构造我的SQL以使用默认值填充xml。
以下是我创建的一个示例,它使用更小的xsd:
来说明我的问题DROP XML SCHEMA COLLECTION TestSchema
GO
CREATE XML SCHEMA COLLECTION TestSchema AS
'<schema xmlns="http://www.w3.org/2001/XMLSchema">
<element name="document">
<complexType>
<sequence>
<element minOccurs="0" name="field1" type="string" default="1" />
<element name="field2" type="int" />
</sequence>
</complexType>
</element>
</schema>'
GO
declare @xml xml(TestSchema) = null
declare @reccount table(recordcount int not null)
insert into @reccount select 32
set @xml =
(
select
recordcount as field2
from
@reccount
for xml
PATH('document')
)
select @xml
@xml的值是:
<document>
<field2>32</field2>
</document>
我期待
<document>
<field1>1</field1>
<field2>32</field2>
</document>
我有什么想法可以生成field1的默认值吗?
提前致谢。
答案 0 :(得分:0)
幸运的是,我遇到了上面的选择声明所愚弄的答案。我只需要为数据添加字段'field1'和''。
set @xml =
(
select
'' as field1,
recordcount as field2
from
@reccount
for xml
PATH('document')
)
这样做了。