--不完全明白楼主的意思,是这个吗?--示例
create proc p_test
@xml nvarchar(4000)
as
print @xml
go--调用
exec p_test'
<xml>
<sqlstring id=1>....</sqlstring>
<sqlstring id=2>....</sqlstring>
<sqlstring id=3>....</sqlstring>
<sqlstring id=4>....</sqlstring>
<sqlstring id=5>....</sqlstring>
</xml>'
create proc p_test
@xml nvarchar(4000)
as
print @xml
go--调用
exec p_test'
<xml>
<sqlstring id=1>....</sqlstring>
<sqlstring id=2>....</sqlstring>
<sqlstring id=3>....</sqlstring>
<sqlstring id=4>....</sqlstring>
<sqlstring id=5>....</sqlstring>
</xml>'
<sqlstring id=1>....</sqlstring>
里存的是sql语句,比如
<sqlstring id=1>select * from table1</sqlstring>
我要做的就是遍历sqlstring,取得每一个sql语句,然后操作。
create proc p_test
@xml ntext
as
declare @p int,@s nvarchar(4000)EXEC sp_xml_preparedocument @p OUTPUT, @xmldeclare tb cursor local for
select sql from openxml(@p,'/xml/sqlstring',1) with(id int '@id',sql nvarchar(4000) '.') order by id
open tb
fetch tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch tb into @s
end
close tb
deallocate tb
go--调用
exec p_test'
<xml>
<sqlstring id="1">select ''1''</sqlstring>
<sqlstring id="2">select 2</sqlstring>
<sqlstring id="3">select 3</sqlstring>
<sqlstring id="4">select 4</sqlstring>
<sqlstring id="5">select 5</sqlstring>
</xml>'
go--删除测试
drop proc p_test
EXEC sp_xml_preparedocument @p OUTPUT, @xml
这里是调用什么系统的过程吗?什么意思?declare tb cursor local for
select sql from openxml(@p,'/xml/sqlstring',1) with(id int '@id',sql nvarchar(4000) '.') order by id
这句不太明白,id int '@id',sql nvarchar(4000) '.'是什么意思?
希望高手能帮我解释一下。