【问题标题】:Import VARBINARY(MAX) column data from remote SQL Server (other domain) to local SQL Server将远程 SQL Server(其他域)的 VARBINARY(MAX) 列数据导入本地 SQL Server
【发布时间】:2014-06-23 08:26:54
【问题描述】:

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

我确实尝试了将数据从源导出到 txt 文件的方法,通过套管列到 VARCHAR(MAX),但是在导入后,datab 正在发生变化

任何帮助

谢谢 阿图尔

【问题讨论】:

  • Atul 您是否直接使用导入导出向导连接源和目标 SQL Server?或将数据导出到 TXT 文件,然后使用 Import\Export Wizard 导入本地服务器?
  • 我做了简单的选择输出到文件将数据放入一个txt文件,然后使用批量插入SQL命令将数据导入回sql server
  • 您能分享一下您使用的 BULK INSERT SQLCODE 吗?
  • CREATE TABLE #Test ( Col1 VARCHAR(100), Col2 NVARCHAR(MAX) ) BULK INSERT #Test FROM 'E:\DB\Result.txt' WITH (FIELDTERMINATOR = ',', ROWTERMINATOR= '\n')

标签: sql-server varbinarymax django-import-export


【解决方案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

注意

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

请参阅本文顶部的链接以获取完整的 CLI 参考和更多示例。

【讨论】:

    【解决方案2】:

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

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

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

    将 TEXT 数据类型转换为 Varbinary(max) 时要小心。
    文本-​​>VARCHAR(MAX)->VARBINARY(MAX)。
    请参阅下面的屏幕截图以更好地理解。无论您在 Text Datatype 列中的数据是否应该来到 Target Table of column 具有 Varbinary(MAX) 数据类型

    【讨论】:

    • 在这种情况下,它也会给出错误 Error 0xc0208030: Data Flow Task 1: The data type for "Destination - result_new_txt.Inputs[Flat File Destination Input].Columns[Col2]" 是 DT_IMAGE,其中不支持。请改用 DT_TEXT 或 DT_NTEXT,并使用数据转换组件将数据从 DT_IMAGE 转换为 DT_IMAGE。 (SQL Server 导入导出向导)
    • 我遇到的类似情况是,我创建了一个与目标表结构相同的中间表,除了带有 TEXT 数据类型的 VARBINARY(MAX) 数据类型列。我将数据从 TXT 文件导入到该中间表。那么你所需要的就是直接从中间表移动到目标表。(虽然它不是一个通用的解决方案)
    • 如果我们在同一台服务器上,数据看起来没问题但是一旦你将这些数据导出到文本文件或其他东西中然后导入,那么二进制数据就会发生变化。我也试过这个。对不起,麻烦了
    • 附上图片供您参考。我从中间表手动复制出内容(TEXT 数据类型列),然后编写更新语句将该值加载到我的目标表中。更新 TRG 设置 Col2=
    猜你喜欢
    • 2017-09-20
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多