我正在尝试从访问数据库导入82k +行表到SQL Server 2008。
使用SQL Server导入和导出向导,输入的记录大约为78k时出错。
这是错误:
Error 0xc0208265: Data Flow Task 1:
Failed to retrieve long data for column "members_notes".
Error 0xc020901c: Data Flow Task 1:
There was an error with output column "members_notes" (41) on output "OLE DB Source Output" (11).
The column status returned was: "DBSTATUS_UNAVAILABLE".
Error 0xc0209029: Data Flow Task 1:
SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR.
The "output column "members_notes" (41)" failed because error code 0xC0209071 occurred, and the error row disposition on "output column "members_notes" (41)" specifies failure on error.
Error 0xc0047038: Data Flow Task 1:
SSIS Error Code DTS_E_PRIMEOUTPUTFAILED.
The PrimeOutput method on component "Source - Query" (1) returned error code 0xC0209029.
The component returned a failure code when the pipeline engine called PrimeOutput().
The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing.
There may be error messages posted before this with more information about the failure.
访问数据库中的members_notes列是备注字段。在传输此数据的SQL Server表中,我将该字段定义为nvarchar(MAX)。
我搜索了这条错误消息,发现文章建议缩小我的SQL数据库,并在执行导出/导入的计算机上清除我的临时文件,但没有一个有效。
还有其他人遇到过这个问题吗?
答案 0 :(得分:4)
我开始搜索Access数据库中的备注字段。最后一行包含备注字段中的“#Error”。当我点击该字段时,我收到以下消息:
“Microsoft Jet数据库引擎 因为你和你停止了这个过程 另一个用户正试图改变 相同的数据同时“
我在Access数据库上运行了Compact和Repair。这在特定记录的备忘录字段中放置了一堆#字符。
然后我再次尝试SQL Server导入和导出向导。那段时间完美无缺!
答案 1 :(得分:1)
我没有足够的声誉来提升你的答案dpii但它确实对我有用。这个问题正在我的脑袋中,一个简单的紧凑和修复使它消失了。还要注意其他使用者同时使用该文件上传(或者在Access中打开文件)或者您可能会遇到此错误
答案 2 :(得分:0)
似乎这是SQL Server 2005中应该修复的错误,请参阅here
修改:根据您的评论,它在2008 SP1 CU5中已修复。