gpt4 book ai didi

sql-server-2005 - 如何将xml数据插入到sql server 2005中的表中

转载 作者:行者123 更新时间:2023-12-03 01:26:45 25 4
gpt4 key购买 nike

我的表结构是

CREATE TABLE [dbo].[Emp](
[ID] [int] NOT NULL,
[EmpName] [varchar](50) NOT NULL,
[Sal] [int] NULL,
)

在此 emp 表中,我想从 xml 字符串插入数据

xml 是

<Record xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><Emp>
<ID>3</ID><EmpName>Dibyendu</EmpName><Sal>3500</Sal></Emp></Record>

假设此 xml 存储在我的存储过程中的变量中,我只想以这样的方式插入此 xml:在 EMP 表中,结果 ID 数据将插入到 ID 列中,EmpName 数据将插入到 EmpName 列中,并且Sal 数据将插入到 Sal 列中。

所以请告诉我如何在存储过程中编写代码。

谢谢

最佳答案

假设 XML 示例如上:

<Record xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Emp>
<ID>3</ID>
<EmpName>Dibyendu</EmpName>
<Sal>3500</Sal>
</Emp>
</Record>

假设下表:

CREATE TABLE Employee
(
[ID] [int] NOT NULL,
[EmpName] varchar(max) NOT NULL,
[Sal] [int] NULL
)

以下使用 xpath 的存储过程应该可以解决问题

CREATE PROCEDURE AddEmployee
@empXml xml
AS

INSERT INTO Employee
(
ID,
EmpName,
Sal
)
VALUES
(
@empXml.value('(/Record/Emp/ID)[1]', 'int'),
@empXml.value('(/Record/Emp/EmpName)[1]', 'varchar(max)'),
@empXml.value('(/Record/Emp/Sal)[1]', 'int')
)

然后您可以执行:

exec AddEmployee '<Record xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><Emp><ID>3</ID><EmpName>Dibyendu</EmpName><Sal>3500</Sal></Emp></Record>' 

如果记录 XML 可能包含多个“Emp”元素,您将需要进行一些重构。

关于sql-server-2005 - 如何将xml数据插入到sql server 2005中的表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4758992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com