正如您现在可能在Microsoft SQL Server 2016中最终支持UTF-8
我想知道如何从UTF-8编码且没有bom的存储过程创建XML文件。
在SQL Server 2016技术概述中,它说明了以下内容:
支持UTF-8数据的导入和导出
现在可以使用BULK INSERT T-SQL命令和bcp命令行实用程序将存储在UTF-8编码文件中的数据导入SQL Server并从SQL Server导出为UTF-8编码文件。作为导入过程的一部分,从文件中读取UTF-8编码的字符串,并将其转换并存储为与SQL Server表中的目标列对应的本机数据类型。作为导出过程的一部分,数据从本机数据类型转换为UTF-8编码字符串并写入文件。除Xml,SqlVariant,Text,NText和Image之外,支持所有本机数据类型。
根据我的理解,我现在可以使用以下命令创建一个UTF-8文件:
declare @command varchar(8000)
set @command = 'bcp "select * from Table" queryout
"{path}" -T -t; -c -C65001'
exec xp_cmdshell @command
但我不知道如何从“FOR XML”查询创建文件。另外,我不知道生成的文件是否会带有BOM。
在谷歌搜索半小时后我找不到任何答案,所以我试图在这里找到答案。
谢谢!
答案 0 :(得分:1)
我会自己写一个迷你工具......
在下面我写C#
,但这对大多数高级编程语言都有效:
SELECT ... FOR XML ...
)而没有任何问题的查询SQL Server在写入文件系统方面非常有限。你当然可以使用SSIS ......
如果你在.Net中这样做,你甚至可能将其作为程序集包含到数据库中并使用T-SQL语句调用它。