【发布时间】:2016-06-03 21:14:37
【问题描述】:
这是我从前端传递到存储过程的表的 Xml 数据。
<ArrayOfUserData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<UserData>
<Name>Dovyan<Name />
<id>434556464<id />
</UserData>
<UserData>
<Name>Alex<Name />
<id>12345767<id />
</UserData>
</ArrayOfUserData>
这是我作为@in_params 传递给存储过程的上述xml。这是存储过程。
USE [DATABASE]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [DATABASE].[sp_SaveUsertable]
(
@in_params AS XML
)
AS
BEGIN
select
T.x.value('./Name[1]','varchar(6)') as [Name] ,
T.x.value('./id[1]','varchar(75)') as [id]
into #Temp
from @in_params.nodes('/ArrayOfUserData/UserData') as T(x);
BEGIN TRANSACTION
INSERT INTO [dbo].[usertable](Name,id)
SELECT Name,id FROM #Temp AS T
COMMIT TRANSACTION
drop table #Temp;
END
有人可以告诉我我可能做错了什么。数据未保存在数据库表中。
【问题讨论】:
标签: mysql sql sql-server stored-procedures insert