我的前任在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和状态文本 "由于潜在的损失,该值无法转换 数据。&#34 ;. (SQL Server导入和导出向导)
错误0xc0209029:数据流任务1:SSIS错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 "数据转换0 - 0.Outputs [数据转换输出] .Columns [Photos]"失败,因为错误代码0xC020907F发生,错误行处理"数据 转换0 - 0.Outputs [数据转换输出] .Columns [Photos]" 指定错误失败。指定对象发生错误 指定组件的。之前可能会发布错误消息 这有关失败的更多信息。 (SQL Server导入和 导出向导)
错误0xc0047022:数据流任务1:SSIS错误代码 DTS_E_PROCESSINPUTFAILED。组件" Data上的ProcessInput方法 转换0 - 0" (49)失败,错误代码为0xC0209029 处理输入"数据转换输入" (50)。确定 component从ProcessInput方法返回错误。错误是 特定于组件,但错误是致命的,将导致 数据流任务停止运行。可能会发布错误消息 在此之前有关于失败的更多信息。 (SQL Server 导入和导出向导)错误0xc02020c4:数据流任务1: 尝试向数据流任务缓冲区添加行失败,但出现错误 代码0xC0047020。 (SQL Server导入和导出向导)错误 0xc0047038:数据流任务1:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。 Source - Attachments上的PrimeOutput方法返回错误代码 0xC02020C4。组件在管道时返回了失败代码 引擎称为PrimeOutput()。失败代码的含义是 由组件定义,但错误是致命的和管道 停止执行。在此之前可能会发布错误消息 有关失败的更多信息。 (SQL Server导入和 导出向导)
答案 0 :(得分:0)
您已经使用SQL Server导入数据,这是一件好事。我可能会使用数据类型IMAGE来保存图像。您还可以尝试数据拼写VARBINARY(MAX)。 使用导入和导出WIzard导入数据,查看哪种数据类型有效。
希望这可以帮助你。
编辑: 您说当转换附件表时,您只有图像的名称。这些名称是否与图像有关。当您仍然拥有图像时,可以将它们存储在一个文件夹中,并使用FILESTREAM连接到使用SQL Server的文件。 使用FILESTREAM可以增强数据库,因为图像数据不再保存在数据库中,只是对它们的引用。
不幸的是,SQL Server不支持多值或附件类字段。 有关FILESTREAM的更多信息,请访问以下网站:http://msdn.microsoft.com/library/hh461480