Sql server 将XML转换为SQL Server数据库
我知道这里很少有其他成员问过这个问题,但他们的需求略有不同,我无法将它们与我的情况准确地联系起来。很抱歉再次问这个问题 我有以下XML文件(这只是它的第一部分),我需要将其转换为SQL Server表 我该怎么做呢?我是一个完全的初学者,但试图做一些大项目。我不太懂SQL,也完全不知道如何通过SQL server读取XML文件。我希望CodeType元素也作为一列,并反映相应的值Sql server 将XML转换为SQL Server数据库,sql-server,xml,Sql Server,Xml,我知道这里很少有其他成员问过这个问题,但他们的需求略有不同,我无法将它们与我的情况准确地联系起来。很抱歉再次问这个问题 我有以下XML文件(这只是它的第一部分),我需要将其转换为SQL Server表 我该怎么做呢?我是一个完全的初学者,但试图做一些大项目。我不太懂SQL,也完全不知道如何通过SQL server读取XML文件。我希望CodeType元素也作为一列,并反映相应的值 <ReferenceDataItems CodeType="AboriginalOrTorresStraitI
<ReferenceDataItems CodeType="AboriginalOrTorresStraitIslanderOrigin">
<Item>
<CodeValue>NO</CodeValue>
<CodeDescription>No</CodeDescription>
<OrderNumber>1</OrderNumber>
</Item>
<Item>
<Item>
<CodeValue>TSI</CodeValue>
<CodeDescription>Torres Strait Islander</CodeDescription>
<OrderNumber>3</OrderNumber>
</Item>
<Item>
<CodeValue>BOTH</CodeValue>
<CodeDescription>Aboriginal and Torres Strait Islander</CodeDescription>
<OrderNumber>4</OrderNumber>
</Item>
<Item>
<CodeValue>NOTSTATED</CodeValue>
<CodeDescription>Not stated/Inadequately described</CodeDescription>
<OrderNumber>5</OrderNumber>
</Item>
</ReferenceDataItems>
<ReferenceDataItems CodeType="AccommodationType">
<Item>
<CodeValue>BOARDING</CodeValue>
<CodeDescription>Boarding house</CodeDescription>
<OrderNumber>1</OrderNumber>
</Item>
<Item>
<CodeValue>TRANSITION</CodeValue>
<CodeDescription>Crisis, emergency or transition</CodeDescription>
<OrderNumber>2</OrderNumber>
</Item>
<Item>
<CodeValue>LIVINGUNIT</CodeValue>
<CodeDescription>Independent living unit</CodeDescription>
<OrderNumber>3</OrderNumber>
</Item>
<Item>
<CodeValue>COMMUNITY</CodeValue>
<CodeDescription>Indigenous community/settlement</CodeDescription>
<OrderNumber>4</OrderNumber>
</Item>
<Item>
<CodeValue>INSTITUTION</CodeValue>
<CodeDescription>Institutional setting (i.e. residential aged care, hospital)</CodeDescription>
<OrderNumber>5</OrderNumber>
</Item>
<Item>
<CodeValue>CLIENTOWNED</CodeValue>
<CodeDescription>Private residence - client or family owned/purchasing</CodeDescription>
<OrderNumber>6</OrderNumber>
</Item>
<Item>
<CodeValue>PRIVATERENTAL</CodeValue>
<CodeDescription>Private residence - private rental</CodeDescription>
<OrderNumber>7</OrderNumber>
</Item>
<Item>
<CodeValue>PUBLICRENTAL</CodeValue>
<CodeDescription>Private residence - public rental</CodeDescription>
<OrderNumber>8</OrderNumber>
</Item>
<Item>
<CodeValue>PUBLICSHELTER</CodeValue>
<CodeDescription>Public shelter</CodeDescription>
<OrderNumber>9</OrderNumber>
</Item>
<Item>
<CodeValue>SUPPORTED</CodeValue>
<CodeDescription>Supported accommodation</CodeDescription>
<OrderNumber>10</OrderNumber>
</Item>
<Item>
<CodeValue>NOTSTATED</CodeValue>
<CodeDescription>Not stated</CodeDescription>
<OrderNumber>11</OrderNumber>
</Item>
<Item>
<CodeValue>OTHER</CodeValue>
<CodeDescription>Other</CodeDescription>
<OrderNumber>12</OrderNumber>
</Item>
</ReferenceDataItems>
不
不
1.
TSI
托雷斯海峡岛民
3.
二者都
托雷斯海峡岛民
4.
未声明
未说明/描述不充分
5.
寄宿
寄宿酒店
1.
过渡
危机、紧急情况或过渡
2.
利文古尼特
独立生活单元
3.
社区
土著社区/定居点
4.
机构
机构设置(即住宿养老、医院)
5.
附属的
私人住宅-客户或家庭拥有/购买
6.
私人的
私人住宅-私人租赁
7.
公共租赁
私人住宅-公共租赁
8.
公共庇护所
公共庇护所
9
支持
辅助住宿
10
未声明
未说明
11
其他
其他
12
假设您的整个XML数据都在一个名为@XML
的变量中,那么您可以使用此XQuery代码提取详细信息:
SELECT
CodeType = XC.value('@CodeType', 'varchar(50)'),
CodeValue = XC2.value('(CodeValue)[1]', 'varchar(100)'),
CodeDescription = XC2.value('(CodeDescription)[1]', 'varchar(100)'),
OrderNumber = XC2.value('(OrderNumber)[1]', 'int')
FROM
@xml.nodes('/ReferenceDataItems') AS XT(XC)
CROSS APPLY
XC.nodes('Item') AS XT2(XC2)
这将返回类似以下内容的数据集:
您想如何将此插入您的问题中不清楚的表中-您需要自己弄清楚…非常感谢!首先,很抱歉,我不知道如何接受您对我的帖子所做的编辑。我按下了rollback,它变成了旧的post样式。抱歉,我刚才说我是新手。我应该运行SQL server并作为新查询启动此查询吗?我想把它们放在一个表调用‘ReferenceData’中,我想把XML文件的路径放在这里吗?('/ReferenceDataItems')@RandikaWijekoon:你不需要接受任何东西,只需让文章保持原样,就可以编辑,更具可读性。不要回滚…(1)您需要将XML加载到SQL Server变量中—为此,有大量的资源向您展示如何执行此操作。然后(2)您需要确保在
ReferenceData
表中有所有必要的列,然后(3)您可以使用INSERT到dbo中。ReferenceData(code类型、code值、code描述、OrderNumber)选择……
(并使用上面的SELECT
作为INSERT
语句的源代码)非常感谢,马克!你是冠军!我打算手动键入数据:)。这节省了很多时间,我学到了一些新东西。非常感谢我的朋友!