2

我需要使用提供的 xsd 中的一些数据将我的一张表加载到 SQL Server 数据库中。

我有我的 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、..etc 等数据加载到表的 StateName 列中。

有人可以建议我应该使用哪种方法来完成这项工作。

4

1 回答 1

3

我会这样做:

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)
于 2012-09-21T09:34:16.697 回答