【发布时间】:2014-12-30 07:17:58
【问题描述】:
当我需要通过存储过程更新表时,我会使用以下内容,这通常对我有用(使用 SQL Server 2012):
UPDATE LogTable
SET title = @title,
summary = @summary,
post = @post,
departmentID = @departmentID
WHERE postID = @postID
但是,现在我的输入不是来自单个参数,而是 XML 输入的一部分(定义为 @xmlMain xml),而 postID 是一个单独的参数(定义为 @postID int)。
我试图在这里使用类似以下的内容,但不知道如何在此处应用 FROM 语句(类似于 FROM @xmlMain.nodes('/root') AS [Xml_Tab]([Cols]) ):
UPDATE LogTable
SET title = [Xml_Tab].[Cols].value('(title)[1]', 'nvarchar(100)'),
summary = [Xml_Tab].[Cols].value('(summary)[1]', 'nvarchar(500)'),
post = [Xml_Tab].[Cols].value('(post)[1]', 'nvarchar(max)'),
departmentID = [Xml_Tab].[Cols].value('(departmentID)[1]', 'int')
WHERE postID = @postID
我怎样才能正确地写这个?
【问题讨论】:
标签: sql sql-server xml stored-procedures sql-update