2014-06-23 29 views
0

我必须从一个SQL Server(位于远程机器上的其他域上的远程机器上,我可以从其中导入VARBINARY(MAX)格式的表数据通过RDP连接连接)到我的本地盒子。从远程SQL Server(其他域)向本地SQL Server导入VARBINARY(MAX)列数据

我没有尝试的方法,通过套管列VARCHAR(MAX),但导入后的数据B是得到改变

任何帮助

感谢 阿图尔

+0

Atul是否直接使用导入导出向导连接源和目标SQL Server?或将数据导出到TXT文件,然后使用导入\导出向导导入本地服务器? – knkarthick24

+0

我做了简单的选择,输出到文件将数据放入txt文件,然后使用批量插入SQL命令将数据导回sql服务器 –

+0

您可以分享您使用的BULK INSERT SQLCODE吗? – knkarthick24

回答

0
将数据从源到txt文件导出

Atul请尝试以下步骤,而不是将SELECT指向输出文件

1)使用导入/导出向导将数据导出到远程计算机中的平面文件(使用|分隔符)。使用向导选项中的SAME SELECT语句(写入查询以指定要传输的数据)。

2)使用平面文件作为源和本地服务器作为导入/导出向导中的目标导入数据。

将TEXT数据类型转换为Varbinary(max)时要谨慎。
TEXT-> VARCHAR(MAX) - > VARBINARY(MAX)。
请参阅下面的截图以便更好地理解。 Whtever您在文本数据类型的列有数据应该到目标表中列有VARBINARY(MAX)数据类型

enter image description here

+0

在这种情况下,它也会给出错误 错误0xc0208030:数据流任务1:“目标 - result_new_txt.Inputs [平面文件目标输入] .Columns [Col2 ]“是DT_IMAGE,不支持。改为使用DT_TEXT或DT_NTEXT,并使用数据转换组件将数据从DT_IMAGE转换为DT_IMAGE。 (SQL Server导入和导出向导) –

+0

类似的情况我遇到过一次我如何解决的是,我创建了一个与目标表结构相同的中间表,除了使用TEXT Datatype的VARBINARY(MAX)数据类型列。我从TXT文件导入数据到该中间表。然后,你需要的是直接从中间表转移到目标表(它不是一个通用的解决方案) – knkarthick24

+0

如果我们这在同一台服务器上的数据看起来不错但只要你将这些数据导出到文本文件或其他东西然后导入,然后二进制数据得到改变。我也试过这个。 对不起,为难的人 –

1

您可能需要使用BCP尝试。

这是一个CLI实用程序,用于将数据从SQL Server导入/导出到作为SQL Server安装一部分的文件中。如果我需要从SQL Server备份图表,我倾向于使用它。 它将适用于VARBINARY列类型。

示例: 要导出:

C:\TARGET_DIR>bcp [MyDatabaseName].dbo.MyTableName out MyTableName.bcp -c -T -S localhost 

要导入:

C:\TARGET_DIR>bcp [MyDatabaseName].dbo.MyTableName in MyTableName.bcp -c -T -S localhost 

NB

  • 的文件将被导入或从这些示例中的当前目录导出。
  • 将[MyDatabaseName] .dbo.MyTableName更改为您的databasename.your模式名称。您的表名
  • 将localhost更改为您的服务器名称
  • 如果使用-c作为文件存储格式时出现问题,并且您是管理员,请尝试使用-n(纯模式)。

请参阅本文顶部的链接了解完整的CLI参考资料以及更多示例。

相关问题