我的表结构是
CREATE TABLE [dbo].[Emp]( [ID] [int] NOT NULL, [EmpName] [varchar](50) NOT NULL, [Sal] [int] NULL, )
在这个emp表中,我想从xml字符串中插入数据
xml是
3 Dibyendu 3500
假设这个xml存储在我的存储过程中的一个变量中,我只想插入这个xml,这样在EMP表中结果ID数据将插入到ID列中,EmpName数据将插入到EmpName列中,而Sal数据将插入Sal列.
所以请告诉我如何在商店程序中编写代码.
谢谢
假设XML样本如上:
3 Dibyendu 3500
假设如下表:
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 '' 3 Dibyendu 3500
如果Record XML可能包含多个'Emp'元素,则需要进行一些重构.