我的前任在2007年创建了一个Access数据库,它有许多表、表单和查询。
其中一个表保存图像,这些图像作为附件存储。
数据库的大小几乎是2GB(压缩和修复不会改变它)。所以我想将其转换为SQL Server 2014数据库。
我使用了数据导入工具,它复制了表格&将数据放入SQL Server中。但是附件只是转换为文件名的字符串(image1.jpg
)
无论如何导入图像从MS Access数据库在SQL Server?
我也有一个Sharepoint 2010服务器,这会是一个更好的选择吗?
更新(抱歉新的堆栈溢出,不知道该把什么放在哪里)
我已经将导入向导中的字段映射更改为IMAGE,并且得到以下错误。如果我将其设置为忽略,则字段为空白。使用VARSTRING,在字段中放置Null或0x。
- 正在执行(错误)消息错误0xc02020c5:数据流任务1:在将列"Photos"(23)转换为列时数据转换失败"照片"(57)。转换返回状态值2和状态文本由于潜在的损失,该值无法转换数据。"。(SQL Server导入和导出向导)
错误0xc0209029: Data Flow Task 1: SSIS Error CodeDTS_E_INDUCEDTRANSFORMFAILUREONERROR。数据转换0 -0.输出[数据转换输出]。列[Photos]"失败了,因为发生了错误代码0xC020907F,并且错误行处理为"Data转换0 - 0。输出[数据转换输出]。列(照片)"指定错误失败。在指定的对象上发生错误指定组件的。之前可能会有错误信息发布其中包含有关故障的更多信息。(SQL Server导入和导出向导)
错误0xc0047022: Data Flow Task 1: SSIS Error CodeDTS_E_PROCESSINPUTFAILED。组件"Data"的ProcessInput方法转换0 - 0"(49)失败,错误码0xC0209029,同时处理输入"数据转换输入"(50)。所确定的组件从ProcessInput方法返回一个错误。错误是特定于组件,但该错误是致命的,并将导致数据流任务停止运行。可能会发布错误消息在此之前提供有关故障的更多信息。(SQL Server导入和导出向导)错误0xc02020c4: Data Flow Task 1: The尝试向"数据流"任务缓冲区添加一行失败,出现错误代码0 xc0047020。(SQL Server导入导出向导)错误0xc0047038:数据流任务1:SSIS错误码dtse_primeoutputfailed。源附件的PrimeOutput方法返回错误代码0 xc02020c4。组件返回一个失败代码时,管道引擎称为PrimeOutput()。故障代码的含义是由组件定义,但该错误是致命的停止执行。在此之前可能会发布错误消息提供有关故障的更多信息。(SQL Server导入和导出向导)
您已经使用SQL Server导入数据,这是一件好事。我可能会使用数据类型IMAGE作为保存图像的列。您还可以尝试VARBINARY(MAX)数据类型。使用导入和导出向导导入数据,看看哪种数据类型有效。
希望这对你有帮助。
编辑:您说,当转换附件表时,您只有图像的名称。这些名字和图像有关吗。当你仍然有图像时,你可以将它们存储在文件夹中,并使用FILESTREAM使用SQL Server连接到我。使用FILESTREAM增强了数据库,因为图像的数据不再保存在数据库中,只保存对它们的引用。
遗憾的是,SQL Server不支持多值或附件字段。有关FILESTREAM的更多信息,请访问以下网站:http://msdn.microsoft.com/library/hh461480