我需要在SQL Server数据库中加载一个表,并提供一些来自xsd的数据。
我有我的XSD,下面有一个块
<xsd:simpleType name="States">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="state1"/>
<xsd:enumeration value="state2"/>
<xsd:enumeration value="state3"/>
</xsd:restriction>
</xsd:simpleType>
在我的表 - 状态中,我有2列StateId,StateName。
我必须将state1,state2,..等数据加载到表的StateName列中。
有人可以建议我使用哪种方法来完成这项工作。
答案 0 :(得分:2)
我会这样做:
DECLARE @xml XML
-- Add the schema information and make the XML a valid XML document to parse.
SELECT @xml = '<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" >
<xsd:simpleType name="Countries">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Country1"/>
<xsd:enumeration value="Country2"/>
<xsd:enumeration value="Country3"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="States">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="state1"/>
<xsd:enumeration value="state2"/>
<xsd:enumeration value="state3"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>';
WITH XMLNAMESPACES ('http://www.w3.org/2001/XMLSchema' as xsd)
SELECT
node.value('@value', 'nvarchar(32)')
FROM
@xml.nodes('/xsd:schema/xsd:simpleType[@name="States"]/xsd:restriction/xsd:enumeration') AS enum(node)