我的T-SQL代码如下:
declare @xml xml = N'
<a abb="122">
<b>
</b>
</a>
<a abb="344">
<b>
</b>
</a>';
declare @T table (XMLCol xml);
insert into @T values (@xml);
declare @sql varchar(max);
set @sql = 'update @T set
XMLCol.modify(''
replace value of (/a/@abb)[1]
with 888'');';
exec (@sql);
当我执行时,出现故障段:
Msg 1087, Level 15, State 2, Line 1
Must declare the table variable "@T".
如何声明变量@T才能理解?
最佳答案
您可以使用临时表代替表变量。
declare @xml xml = N'
<a abb="122">
<b>
</b>
</a>
<a abb="344">
<b>
</b>
</a>';
create table #T (XMLCol xml);
insert into #T values (@xml);
declare @sql varchar(max);
set @sql = 'update #T set
XMLCol.modify(''
replace value of (/a/@abb)[1]
with 888'');';
exec (@sql);
drop table #T
关于t-sql - T-SQL 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5456910/