把 for xml path 查询出的结果想保存到变量里,供下面的插入 使用
declare @xmlData nvarchar(max)
set @xmlData = 'select * from _role where roleid=5 for xml path(''_role'')'
exec(@xmlData)
INSERT into _operateLog (employeeid,clientId,recordData,operateType,operateTime,operateMsg,moduleName)
values(1,1,exec(@xmlData),1,getdate(),'添加了部门节点','部门')
这样直接报错:
消息 156,级别 15,状态 1,第 7 行
关键字 'exec' 附近有语法错误。
消息 102,级别 15,状态 1,第 7 行
',' 附近有语法错误。
------解决方案--------------------
支持大版~
------解决方案--------------------
嗯 这块不怎么明白 再去看看
------解决方案--------------------
sp_executesql这样用
declare @xmlData XML,
@tbName nvarchar(20),
@Sql nvarchar(max)
set @tbName='role'
set @Sql = 'set @xmlData=(select * from '+@tbName+' where roleid=5 for xml path(''' + @tbName + ''')'
exec sp_executesql @Sql,N'@xmlData xml output',@xmlData OUTPUT
INSERT into _operateLog (employeeid,clientId,recordData,operateType,operateTime,operateMsg,moduleName)
values(1,1, @xmlData,1,getdate(),'添加了部门节点','部门')