2011-12-28 43 views
0

私は出力として変数を宣言したストアドプロシージャを持っています。この手順では、複数のselect文を用意する必要があります。私は同じ出力にないときに複数選択ステートメントを作成することに問題はありませんが、私はこれを理解することはできません。ストアドプロシージャの出力に複数のSELECT文を使用するにはどうすればよいですか?

SET @XmlOutput = (という手順の一部を実行した後、さらにselect文を追加したいと思います。

ありがとうございました!

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結果を追加することができるかわからない

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 

答えて

1

既存のxmlの中に要素を追加したい場合、最も簡単な方法はroot節を最後まで導入しないことです:

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

xmlファイルに上記の「item」要素と同じレベルの要素を2つ追加する必要があります。これらは変化しない静的な要素です。私はそれ以来ずっとmakngしてくれないのは残念です。 – John

+0

@John編集を参照してください。 – GSerg

+0

ありがとう!それは今働きます! – John

関連する問題