Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL Server中连接XML变量_Sql_Xml_Sql Server 2008_Tsql - Fatal编程技术网

在SQL Server中连接XML变量

在SQL Server中连接XML变量,sql,xml,sql-server-2008,tsql,Sql,Xml,Sql Server 2008,Tsql,我在存储过程中有一个查询,检索一些XML格式的数据,以变量@XML_data返回,如下所示: SELECT @xml_data = ( SELECT * FROM ( SELECT 1 AS Tag ,0 AS Parent ..... FROM MyTable WHERE id = @id UNION ALL SELECT

我在存储过程中有一个查询,检索一些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,例如,但不知道如何做。我试着转换成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)