ID do artigo: 952111 - Última revisão: segunda-feira, 5 de maio de 2008 - Revisão: 1.1

A coluna de identidade da tabela de destino não contém os mesmos valores identidade como a tabela de origem após usar o SQL Server Management Studio para importar dados ou para exportar dados do Microsoft SQL Server 2005

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Recolher tudo

Sintomas

Considere o seguinte cenário:
  • No Microsoft SQL Server 2005, você usa o SQL Server Management Studio para importar dados ou para exportar dados de uma tabela de origem para uma tabela de destino.
  • Tanto a tabela de origem e a tabela de destino incluem uma coluna de identidade.
  • Você ativar a opção Ativar a inserção de identidade para a tabela de origem.
  • No Assistente para exportação e importação do SQL Server, você ativar a opção otimizar para várias tabelas .
Nesse cenário, quando terminar de importar ou exportar os dados, você achar que a coluna de identidade da tabela de destino não contém os mesmos valores identidade como a tabela de origem. Em vez disso, a coluna de identidade da tabela de destino contém valores de identidade resequenced.

Observação Esse problema não ocorre no Microsoft SQL Server 2000.

Causa

Esse problema ocorre como assistente no SQL Server para importação e exportação não define a propriedade IDENTITY_INSERT para a tabela se a opção otimizar para muitas tabelas é ativada. A propriedade IDENTITY_INSERT pode ser definida para somente uma tabela por vez. Se você ativar a opção otimizar para várias tabelas no assistente, a operação de cópia será executada para várias tabelas em vários threads ao mesmo tempo. Portanto, Assistente do SQL Server para importação e exportação não define a propriedade IDENTITY_INSERT.

Resolução

Para resolver esse problema, não habilite a opção otimizar para várias tabelas no Assistente do SQL Server para importação e exportação.

Se você não ativar a opção otimizar para várias tabelas , a operação de dados pode levar mais tempo para concluir. Se você quiser preservar os valores de identidade quando você importar ou exporta uma grande quantidade de dados, recomendamos que você use um dos seguintes métodos:
  • Use o utilitário bcp junto com a opção ? e ? para transferir a tabela.

    Por exemplo, primeiro execute um comando que se pareça com o comando a seguir para exportar dados da tabela de origem para um arquivo .txt:
    bcp.exe SourceTable saída C:\FileName .txt - S. ? e ? - c -T
    Em seguida, execute um comando que se pareça com o seguinte comando para importar dados para a tabela de destino:
    bcp.exe DestinationTable em .txt C:\FileName - S. -T-c-E
  • Desanexar o banco de dados e, em seguida, anexar o banco de dados para o servidor de destino.

Mais Informações

Se você habilitar a opção Ativar a inserção de identidade para a tabela de origem, o assistente o SQL Server para importação e exportação devem executar a instrução SET IDENTITY_INSERT ON para cada tabela que contém uma coluna de identidade. Em seguida, depois que os valores de identidade são inseridos à tabela de destino, Assistente do SQL Server para importação e exportação devem executar a instrução SET IDENTITY_INSERT OFF. No entanto, essas operações não ocorrem corretamente se a opção otimizar para muitas tabelas está habilitada.

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
Palavras-chave: 
kbmt kbtshoot kbexpertiseadvanced kbsql2005tool kbprb KB952111 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 952111  (http://support.microsoft.com/kb/952111/en-us/ )