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)
希望这对您有所帮助...
我需要导出一个 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)
希望这对您有所帮助...