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 depois de utilizar o SQL Server Management Studio para importar dados ou para exportar dados no 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 | Reduzir tudo

Sintomas

Considere o seguinte cenário:
  • No Microsoft SQL Server 2005, utilize 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.
  • Activar a opção activar a inserção de identidade para a tabela de origem.
  • Nas Assistente de exportação e importação do servidor SQL, activar a opção Optimizar para muitas tabelas .
Neste cenário, depois de concluir a importar ou exportar os dados, encontrar 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.

Nota Este problema não ocorre no Microsoft SQL Server 2000.

Causa

Este problema ocorre uma vez que o SQL Server assistente importação e exportação não define a propriedade IDENTITY_INSERT para a tabela se a opção Optimizar para muitas tabelas é activada. A propriedade IDENTITY_INSERT pode ser definida para apenas uma tabela ao mesmo tempo. Se activar a opção Optimizar para muitas tabelas no assistente, a operação de cópia é executada para várias tabelas em vários threads ao mesmo tempo. Por conseguinte, o SQL Server assistente importação e exportação não define a propriedade IDENTITY_INSERT.

Resolução

Para resolver este problema, não Active a opção Optimizar para muitas tabelas do SQL Server assistente importação e exportação.

Se não activar a opção Optimizar para muitas tabelas , a operação de dados poderá demorar mais tempo a concluir. Se pretender manter os valores de identidade quando importar ou exportar uma grande quantidade de dados, recomendamos que utilize um dos seguintes métodos:
  • Utilize o utilitário bcp juntamente com o parâmetro ?E para transferir a tabela.

    Por exemplo, primeiro execute um comando semelhante o seguinte comando para exportar dados da tabela de origem para um ficheiro .txt:
    BCP.exe SourceTable fora C:\FileName .txt - S. -T - c ?E
    Em seguida, execute um comando semelhante o seguinte comando para importar dados para a tabela de destino:
    BCP.exe DestinationTable em C:\FileName .txt - g -T-c-E
  • Desanexar a base de dados e, em seguida, anexar a base de dados para o servidor de destino.

Mais Informação

Se activar a opção activar a inserção de identidade para a tabela de origem, o SQL Server assistente importação e exportação deve ser executado a instrução SET ON IDENTITY_INSERT para cada tabela que contém uma coluna de identidade. Em seguida, depois os valores de identidade são inseridos na tabela de destino, o SQL Server assistente importação e exportação devem executar a instrução SET IDENTITY_INSERT OFF. No entanto, estas operações não ocorrem correctamente se a opção Optimizar para muitas tabelas está activada.

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secçã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 2005 Server Enterprise
  • 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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/ )