Sql 如何在存储过程的输出中使用多个select语句?

Sql 如何在存储过程的输出中使用多个select语句?,sql,stored-procedures,Sql,Stored Procedures,我有一个将变量声明为输出的存储过程。在这个过程中,我需要有多个select语句。当多个select语句不在同一个输出中时,我可以创建多个select语句,但我无法解决这个问题 在过程的以下部分:SET@XmlOutput=之后,我想添加更多select语句 谢谢你的帮助 ALTER PROC [dbo].[uspCreateGeoRssFile] AS DECLARE @XmlOutput xml SET @XmlOutput = ( SELECT

我有一个将变量声明为输出的存储过程。在这个过程中,我需要有多个select语句。当多个select语句不在同一个输出中时,我可以创建多个select语句,但我无法解决这个问题

在过程的以下部分:SET@XmlOutput=之后,我想添加更多select语句

谢谢你的帮助

ALTER PROC [dbo].[uspCreateGeoRssFile]
AS
  DECLARE @XmlOutput xml
  SET @XmlOutput = (
      SELECT     
         CustomerName AS Title, esn, longitude, latitude, Device_Alias AS Description
      FROM         
         LS_Variable_Listing AS item
      WHERE     
         (triggers <> N'No Event Recorded') 
         AND (CustomerName = N'Hiland Partners, LLC')
      ORDER BY timestamp_utc DESC
      FOR XML AUTO, ROOT('channel'), ELEMENTS)

  SELECT @XmlOutput

不确定要在此处执行什么操作,但可以将一个xml结果附加到另一个xml结果:

declare @x xml;
declare @some_more_xml xml;

....

set @x = (select @x, @some_more_xml for xml path(''), type);
这也可以是内联的:

set @x = (
  select
    (select 1 as foo for xml raw, root('root1'), type),
    (select 2 as bar for xml raw, root('root2'), type)
  for xml path(''), type
);
如果要在某些现有xml中添加元素,那么最简单的方法是在末尾之前不引入root子句:

set @x = (
  select
    (select ... for xml auto, type),
    (select ... for xml auto, type)
  for xml path(''), root('channel'), type
);

我需要向xml文件中添加更多的元素,它们与上面的item元素处于同一级别。这些只是不会改变的静态元素。很抱歉,从那以后我就没有赚更多的钱。