gpt4 book ai didi

sql-server - 通过选择多个表到某个文件位置从 SQL Server 生成 XML

转载 作者:数据小太阳 更新时间:2023-10-29 02:39:13 25 4
gpt4 key购买 nike

如果我有以下 SQL 语句,我实际上可以使用它来根据来自两个表的数据生成 XML。我得到了结果,但我必须右键单击它,单击“另存为”,然后选择一个位置(例如 C:\Users\my\Documents)来保存此 XML。有没有办法自动执行此操作?

SELECT
(SELECT y.* FROM dbo.TableY FOR XML PATH('y'), TYPE) AS 'YElements',
(SELECT a.* FROM dbo.TableA FOR XML PATH('a'), TYPE) AS 'AElements'
FOR XML PATH(''), ROOT('root')

最佳答案

您可以使用 BCP ,但您可能必须使用 SP_CONFIGURE 启用 XP_CMDSHELL...

此外,还有一些谜题需要解决,因为 BCP 有一些相当奇怪的态度(转义字符、内部多重引号、完全限定名称......)。

主要思想是:

  • 构建一个动态 SQL 语句以允许动态填充像文件名这样的片段(但您可能会对此进行硬编码...)
  • xp_cmdshell执行语句

这至少会向您展示一般方法:

DECLARE @FileName VARCHAR(50)='C:\Users\...';
DECLARE @SQLCmd VARCHAR(2000)=
(
SELECT 'bcp.exe '
+ '"SELECT ''Just a test'' AS TestColumn FOR XML PATH(''''), ROOT(''root'')"'
+ ' queryout '
+ @FileName
+ ' -w -T -S ' + @@SERVERNAME
);
-- display command, for visual check
SELECT @SQLCmd AS 'Command to execute'

-- create the XML file
EXEC xp_cmdshell @SQLCmd;

关于sql-server - 通过选择多个表到某个文件位置从 SQL Server 生成 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39461811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com