通常の方法でいくつかのXMLを返すFORXMLPATHストアドプロシージャがあります(わかりやすくするために短縮されています)。
CREATE PROCEDURE sp_returnsubnode
AS
BEGIN
SELECT subnode.subnodeid "@subnodeid"
,subnode.somedata "somedata"
FROM subnode
FOR XML PATH('subnode')
END
上記のクエリの結果を例に含めたい別のストアドプロシージャがあります。
CREATE PROCEDURE sp_returnmainxml
AS
BEGIN
SELECT node.nodeid "@nodeid"
,node.nodedata "data"
,[AT THIS POINT I WOULD LIKE TO CALL sp_returnsubnode AND NEST IT]
,node.moredata "moredata"
FROM node
FOR XML PATH ('node')
END
しかし、私が試した方法は、sp_subnodeを実行した結果をxmlデータ型に割り当て、失敗したものをネストしようとするようなものです。
これは人々が頻繁にやりたいことのように思えますが、私はそれを行う方法についての参照を見つけていません。それも可能ですか?