Pergunta

Estou tentando importar uma tabela de 82K+ de um db de acesso para o SQL Server 2008.

Usando o assistente de importação e exportação do SQL Server, recebo um erro em cerca de 78 mil registros inseridos.

Aqui está o erro:

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.

A coluna membros_notes no banco de dados de acesso é um campo de memorando. Na tabela SQL Server para a qual esses dados estão sendo transferidos, eu defini o campo como Nvarchar (MAX).

Eu procurei por essa mensagem de erro e encontrei artigos sugerindo encolher meu db SQL e limpar meus arquivos de temperatura no computador fazendo a exportação/importação, nenhum dos quais funcionou.

Alguém mais passou por esse problema?

Foi útil?

Solução

Comecei a pesquisar no campo de memorando no banco de dados de acesso. A última linha continha '#error' no campo memorando. Quando cliquei naquele campo, recebi a seguinte mensagem:

"O mecanismo de banco de dados da Microsoft Jet interrompeu o processo porque você e outro usuário estão tentando alterar os mesmos dados ao mesmo tempo"

Eu executei compactos e reparo no banco de dados de acesso. Isso colocou um monte de caracteres # no campo de memorando para esse registro específico.

Tentei então o assistente de importação e exportação do SQL Server novamente. Funcionou perfeitamente naquela época!

Outras dicas

Não tenho reputação suficiente para aumentar sua resposta DPII, mas definitivamente funcionou para mim. Esse problema estava fazendo minha cabeça e um simples compacto e reparo o fizeram desaparecer. Também tenha cuidado com outros usosr usando o arquivo simultaneamente o que você está enviando (ou fazendo com que o arquivo se abra no acesso) ou você pode encontrar este erro

Parece que este é um bug no SQL Server 2005 que deveria ser corrigido, veja aqui

Editar: De acordo com o seu comentário abaixo, ele é consertado em 2008 SP1 CU5.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top