Access 2007附件类型到SQL Server

时间:2014-07-28 10:33:41

标签: sql ms-access attachment sql-server-2014

我的前任在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导入和   导出向导)

1 个答案:

答案 0 :(得分:0)

您已经使用SQL Server导入数据,这是一件好事。我可能会使用数据类型IMAGE来保存图像。您还可以尝试数据拼写VARBINARY(MAX)。 使用导入和导出WIzard导入数据,查看哪种数据类型有效。

希望这可以帮助你。

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

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