我对XML很新颖,正在寻找一种方法来使用输入参数中的XML来存储过程的下面部分(使用SQL Server 2012)。
XML是通过JS/AJAX提交的,看起来像这样:SQL Server:如何正确使用xml参数来更新过程
var xmlMain = '<root><title>' + title + '</title><summary>' + summary + '</summary><post>' + post + '</post><departmentID>' + departmentID + '</departmentID></root>';
SQL中的参数定义为:
@xmlMain xml
从XML选择以下工作:
SELECT [Xml_Tab].[Cols].value('(title)[1]', 'nvarchar(100)'),
[Xml_Tab].[Cols].value('(summary)[1]', 'nvarchar(500)'),
[Xml_Tab].[Cols].value('(post)[1]', 'nvarchar(max)'),
[Xml_Tab].[Cols].value('(departmentID)[1]', 'int')
FROM @xmlMain.nodes('/root') AS [Xml_Tab]([Cols])
我不能弄清楚的是如何应用这样的东西到下面:
UPDATE RC_Posts
SET title = @title,
summary = @summary,
post = @post,
departmentID = @departmentID
WHERE postID = @postID
我希望这里有人能帮助我。 Tim先生非常感谢。
你在有''Postid' @ XmlMain'或从那里你会得到'@ postID' – 2014-12-27 15:40:59
谢谢 - 生成单独帖子ID所以这不包括XML字符串中(在XML只包含上面数据)。在这种情况下,postID存储在一个临时表之前的这部分过程:OUTPUT \t inserted.postID INTO @temp(insertRef) – user2571510 2014-12-27 15:41:58
因此,如何知道'@ XmlMain'中的信息属于特定的'postID' – 2014-12-27 15:43:26