SQL - 将带有 xml 列的 table 导出到文本文件中

SQL - Exporting a table with xml colomun into a text file

我需要导出一个 table,它包含一个 XML 列(这个 xml 我包含任何特殊字符,所以我不能将它们用作列分隔符)到文本文件。

我正在使用 SQL Server 2014。XML 列可能包含特殊字符,例如 @|,?, 制表符,<cr> 很多可以用作分隔符的东西。

我想导出整个 table。 XML 不是内部结构化的。该列的最大长度约为 6000 个字符。 table 有大约 70 万行。并且目的地在 SQL Server 2012(低于来源版本)中是相同的 table,它们在不同的网络中。

我正在尝试将其导出为 .txt 文件,并以 || 作为列分隔符。但是当我尝试将此文件导入目标 table 时,它说文本被截断并且无法导入。

最好的方法是什么?

你在评论中给出的所有答案都让我觉得你走错了路......最好的方法应该是 linked servers:

阅读此处:https://msdn.microsoft.com/en-us/library/ff772782.aspx?f=255&MSPPError=-2147217396

这里有更多信息:https://msdn.microsoft.com/en-us/library/ms190479.aspx?f=255&MSPPError=-2147217396

在你的 2014 春夏试试这个

USE [master]
GO
EXEC master.dbo.sp_addlinkedserver 
    @server = N'YourLowerServer', 
    @srvproduct=N'SQL Server' ;
GO

您需要获得访问权限:

EXEC master.dbo.sp_addlinkedsrvlogin 
    @rmtsrvname = N'YourLowerServer', 
    @locallogin = NULL , 
    @useself = N'True' ;
GO

如果这样做,您可以使用 INSERT INTO 从一台服务器直接到另一台服务器。在你的 2014 春夏试试这个:

INSERT INTO YourLowerServer.YourDatabase.dbo.TableName(col1,col2,...)
SELECT col1,col2,... FROM dbo.TableName 

如果您想在此操作后删除链接服务器,请使用 sp_dropserver(阅读此处:https://msdn.microsoft.com/en-us/library/ms174310.aspx

希望这对您有所帮助...