如何使用AS SELECT from WHERE从T-SQL中获取xml变量?

如何使用AS SELECT from WHERE从T-SQL中获取xml变量?,sql,sql-server,xml,Sql,Sql Server,Xml,我需要在存储过程中获取xml变量 我试着这样: DECLARE @xmlDoc XML; SET @xmlDoc = ( WITH TEMP_TABLE (NAME, AGE) AS ( SELECT NAME, AGE FROM SOME_TABLE WHERE id=1 ) SELECT A.NAME, A.AGE, B.JOB FROM TEMP_TABLE AS A, ANOTHER_TABLE AS B WHERE A.id = 1 AND B.id = 1 FOR XML AUTO

我需要在存储过程中获取xml变量

我试着这样:

DECLARE @xmlDoc XML;

SET @xmlDoc = (
WITH TEMP_TABLE (NAME, AGE)
AS
(
SELECT NAME, AGE FROM SOME_TABLE WHERE id=1
)
SELECT A.NAME, A.AGE, B.JOB
FROM TEMP_TABLE AS A, ANOTHER_TABLE AS B
WHERE A.id = 1 AND B.id = 1
FOR XML AUTO
);
但我犯了个错误

如何从With~ starting子句获取xml?有可能吗?

我找到了解决办法

DECLARE @xmlDoc XML;

;WITH TEMP_TABLE (NAME, AGE)
AS
(
-- select code here
)
SELECT @xmlDoc = (SELECT ... FROM ... WHERE ... FOR XML AUTO);

在tsql xml的帮助下,我总是遇到更多的问题。在您的位置上,我试图避免这种情况,或者在客户端执行xml部分(如果可能的话,例如使用libxml),或者尝试创建一个完全不使用xml的解决方案。我希望你能解决你想要的问题。