Tôi đã tìm thấy một giải pháp thông qua một cách khác. (không nhớ tôi đã tìm thấy trang web nào) Xem đoạn mã bên dưới. Mã này sẽ xuất tệp của tôi ở dạng mã hóa UTF-8-BOM.
@File VARCHAR(2000)
AS
BEGIN
DECLARE @OLE INT
EXECUTE sp_OACreate 'ADODB.Stream', @OLE OUTPUT
DECLARE @Text XML
SET @Text = (SELECT TOP(1) [xml] from VW_WARP_LEVERANCIERS_XML)
DECLARE @Converted NVARCHAR(MAX)
SET @Converted = CONVERT(nvarchar(MAX), @Text)
EXECUTE sp_OASetProperty @OLE, 'Type', 2 --1 = binary, 2 = text
EXECUTE sp_OASetProperty @OLE, 'Mode', 3 --0 = not set, 1 read, 2 write, 3 read/write
EXECUTE sp_OASetProperty @OLE, 'Charset', 'UTF-8' --'ISO-8859-1'
EXECUTE sp_OASetProperty @OLE, 'LineSeparator', 'adLF'
EXECUTE sp_OAMethod @OLE, 'Open'
EXECUTE sp_OAMethod @OLE, 'WriteText', NULL, @Converted --text method
--Commit data and close text stream
EXECUTE sp_OAMethod @OLE, 'SaveToFile', NULL, @File, 2 --1 = notexist 2 = overwrite
EXECUTE sp_OAMethod @OLE, 'Close'
EXECUTE sp_OADestroy @OLE
EXECUTE sp_OADestroy @OLE
END