[英]Concatenate XML variables in SQL Server
我在存儲過程中有一個查詢,以 XML 格式檢索一些數據,以在變量@xml_data
返回,如下所示:
SELECT @xml_data = (
SELECT * FROM (
SELECT 1 AS Tag
,0 AS Parent
.....
FROM MyTable
WHERE id = @id
UNION ALL
SELECT 2 AS Tag
,1 AS Parent
....
FROM MyTable2
WHERE id = @id
UNION ALL
SELECT 3 AS Tag
,2 AS Parent
....
FROM MyTable3
WHERE id = @id
) results
FOR XML EXPLICIT, TYPE)
這就像眾所周知的夢想一樣工作:)
但是,我想將標頭連接到此 XML(例如<xml version="1.0" encoding="ISO-8859-1"/>
),但不知道該怎么做。 我嘗試轉換為NVARCHAR
,在一個語句中選擇兩個變量,但似乎無法正確處理。
有人可以幫忙嗎??
謝謝 :)
嘗試這樣做:
DECLARE @x xml
DECLARE @strXML varchar(MAX)
SET @x=N'<Employee><Name>Luftwaffe</Name></Employee>'
set @strXML = '<xml version="1.0" encoding="ISO-8859-1"/>' + CONVERT(varchar(MAX),@x)
SELECT @strXML
希望能幫助到你 !
您可以在開頭聲明字符串並將它們連接在一起:
declare @xml_data nvarchar(MAX)
set @xml_data = '<xml version="1.0" encoding="ISO-8859-1"/>'
SELECT @xml_data = @xml_data + (
SELECT * FROM (
SELECT 1 AS Tag
,0 AS Parent
.....
FROM MyTable
WHERE id = @id
UNION ALL
SELECT 2 AS Tag
,1 AS Parent
....
FROM MyTable2
WHERE id = @id
UNION ALL
SELECT 3 AS Tag
,2 AS Parent
....
FROM MyTable3
WHERE id = @id
) results
FOR XML EXPLICIT, TYPE)
這是最簡單的方法,在我看來:
declare @xml1 xml
declare @xml2 xml
declare @xml3 xml
select @xml1='<name>testname</name>'
select @xml2='<value>testvalue</value>'
select @xml3 =
(
select @xml1 AS xml1, @xml2 AS xml2
for xml path('')
)
select @xml3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.