SQL操纵XML的问题

打酱油的 2011-05-05 11:42:23
  set @val = @resumexml.value('(//Field[@id=1586]/MCAnsID)[1]','nvarchar(max)');   



如何让[@id=1586] 动态化起来? 其中的1586我需要替换成@FieldID.
因为这个ID是个动态值.


set @val = @resumexml.value('(//Field[@id='+@FieldID+']/MCAnsID)[1]','nvarchar(max)');

---------------------------------------------------------------------------------------

Declare @FieldID int
select top 1 @FieldID=FieldID from DM_CustField with(nolock) where AccountId=@AccountID and FieldName='Download Exam Result'
Declare @xmlString nvarchar(200)

set @val = @resumexml.value(@xmlString ,'nvarchar(max)');

-----以上两种方法均不行.


...全文
73 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangCK 2011-05-05
  • 打赏
  • 举报
回复
sql:variable()
快溜 2011-05-05
  • 打赏
  • 举报
回复
exec('set '+@val+' = '+@resumexml+'.value(''(//Field[@id='+@FieldID+']/MCAnsID)[1]','nvarchar(max)'')')
快溜 2011-05-05
  • 打赏
  • 举报
回复
exec('set @val = @resumexml.value(''(//Field[@id='+@FieldID+']/MCAnsID)[1]','nvarchar(max)'')')

22,294

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧