SQL - 将包含xml colomun的表导出到文本文件

时间:2015-11-27 22:12:45

标签: sql sql-server xml transfer

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

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

我想导出整个表格。 XML不是内部结构化的。列的最大长度约为6000个字符。该表有大约700k行。并且目标是SQL Server 2012中的相同表(比原始版本更低版本),它们位于不同的网络中。

我尝试将其导出为带有||的.txt文件作为列分隔符。但是当我尝试将此文件导入目标表时,它表示文本被截断并且无法导入。

我能做到这一点的最佳方式是什么?

1 个答案:

答案 0 :(得分:1)

你在评论中给出的所有答案都让我觉得你的方向错误......最好的方法应该是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

在SS2014中试试这个

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从一台服务器直接用于另一台服务器。在SS2014中试试这个:

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

希望这会有所帮助......