6

我正在尝试将 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.

access 数据库中的 members_notes 列是备注字段。在此数据要传输到的 SQL Server 表中,我已将字段定义为 nvarchar(MAX)。

我搜索了此错误消息,发现建议缩小我的 SQL 数据库并清除执行导出/导入的计算机上的临时文件的文章,但均无效。

有没有其他人遇到过这个问题?

4

3 回答 3

4

我开始在 Access 数据库中搜索备注字段。最后一行在备注字段中包含“#Error”。当我单击该字段时,我收到以下消息:

“Microsoft Jet 数据库引擎停止了该过程,因为您和另一个用户正试图同时更改相同的数据”

我在 Access 数据库上运行压缩和修复。这在该特定记录的备注字段中放置了一堆 # 字符。

然后我再次尝试了 SQL Server 导入和导出向导。那个时候效果很好!

于 2009-12-19T03:57:15.680 回答
1

我没有足够的声誉来提高您的回答 dpii,但它确实对我有用。这个问题困扰着我,一个简单的紧凑和修复让它消失了。还要注意其他用户在您上传时同时使用该文件(或让文件在 Access 中自己打开),否则您可能会遇到此错误

于 2011-02-09T10:51:22.260 回答
0

似乎这是 SQL Server 2005 中的一个错误,应该修复,请参见此处

编辑:根据您在下面的评论,它已在2008 SP1 CU5中修复。

于 2009-12-17T20:18:35.383 回答