1

我的前任在 2007 年创建了一个 Access 数据库,其中包含许多表、表单和查询。

其中一张表包含以附件形式存储的图像。

数据库大小接近 2GB(压缩和修复不会改变它)。所以我想将其转换为 SQL Server 2014 数据库。

我使用了数据导入工具,该工具已将表和数据复制到 SQL Server 中。但是附件只是转换为文件名的字符串(image1.jpg

无论如何要将图像从 MS Access 数据库导入 SQL Server 吗?

我还有一个 Sharepoint 2010 服务器,这是一个更好的选择吗?

更新(抱歉 Stack Overflow 的新手,不知道该放什么)

我已将导入向导中的字段映射更改为 IMAGE,但出现以下错误。如果我将其设置为忽略,则字段为空白。使用 VARSTRING,将 Null 或 0x 放在字段中。

  • 执行(错误)消息错误 0xc02020c5:数据流任务 1:将“照片”列 (23) 转换为“照片”列 (57) 时数据转换失败。转换返回状态值 2 和状态文本“由于可能丢失数据,无法转换该值。”。(SQL Server 导入和导出向导)

错误 0xc0209029:数据流任务 1:SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。“Data Conversion 0 - 0.Outputs[Data Conversion Output].Columns[Photos]”失败,因为出现错误代码 0xC020907F,并且“Data Conversion 0 - 0.Outputs[Data Conversion Output].Columns[Photos] 上的错误行处置]" 指定错误失败。指定组件的指定对象发生错误。在此之前可能会发布错误消息,其中包含有关失败的更多信息。(SQL Server 导入和导出向导)

错误 0xc0047022:数据流任务 1:SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。在处理输入“数据转换输入”(50) 时,组件“数据转换 0 - 0”(49) 上的 ProcessInput 方法失败,错误代码为 0xC0209029。已识别的组件从 ProcessInput 方法返回错误。该错误是特定于组件的,但该错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。(SQL Server 导入和导出向导)错误 0xc02020c4:数据流任务 1:尝试向数据流任务缓冲区添加行失败,错误代码为 0xC0047020。(SQL Server 导入和导出向导)错误 0xc0047038:数据流任务 1:SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。Source - Attachments 上的 PrimeOutput 方法返回错误代码 0xC02020C4。当管道引擎调用 PrimeOutput() 时,组件返回了失败代码。失败代码的含义由组件定义,但错误是致命的并且管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。(SQL Server 导入和导出向导)

4

1 回答 1

0

您已经使用 SQL Server 导入数据,这是一件好事。我可能会为该列使用数据类型 IMAGE 来保存图像。您也可以尝试数据输入错误 VARBINARY(MAX)。使用导入和导出向导导入数据,然后查看哪种数据类型有效。

希望这可以帮助你。

编辑:您说当您转换附件表时,您只有图像的名称。这些名称是否与图像有关。当您仍然拥有图像时,您可以将它们存储在一个文件夹中,并使用 FILESTREAM 通过 SQL Server 连接到 thme。使用 FILESTREAM 增强了数据库,因为图像的数据不再保存在数据库中,只是对它们的引用。

不幸的是,SQL Server 不支持多值或附件等字段。有关 FILESTREAM 的更多信息,请访问此网站:http: //msdn.microsoft.com/library/hh461480

于 2014-07-29T06:34:14.257 回答