2011-06-21 131 views
4

我想创建一个存储过程,它接受XML数据作为输入参数,但无法让它编译。验证码:问题将XML参数传递给SQL Server存储过程

CREATE PROCEDURE dbo.idn_UpdateUserApplications 
(
    @AppIdList xml, 
    @UserID nvarchar(256), 
    @ModifiedBy nvarchar(256) 
) 

AS 

BEGIN 
    SET NOCOUNT ON 

    INSERT INTO userapplication 
       (userid, 
       modifiedby, 
       modifiedon, 
       appid) 
    SELECT @UserID as userid, 
      @ModifiedBy As modifiedby, 
      Getdate() as modifiedon, 
      paramvalues.id.VALUE('.', 'VARCHAR(20)') AS appid 
    FROM @AppIdList.NODES('/Applications/id') AS paramvalues(ID) 
END 

的错误: 消息317,级别16,状态1,过程idn_UpdateUserApplications,13号线 表值函数 '节点' 不能有列别名。

+0

我忘了提及 - 这是SQL 2005,所以我不能使用表值参数 - 喂! –

回答

6

NODESVALUE需要小写nodes,value

+0

就是这样 - 不能相信SQL Server就是这样(我爱SQL Server) –

相关问题