Mensagem de erro ao usar a classe SqlBulkCopy para copiar dados de um recurso para uma tabela de dados no .NET Framework 2.0: "System.InvalidOperationException: Falha ao obter informações de agrupamento da coluna para a tabela de destino"

Traduções deste artigo Traduções deste artigo
ID do artigo: 944389 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Em um aplicativo do Microsoft .NET Framework 2.0, você usar a classe SqlBulkCopy para copiar dados de um System.Data.DataTable para uma tabela no Microsoft SQL Server. Se o nome da tabela contiver um caractere de ponto (.), você receber a seguinte mensagem de erro:
System.InvalidOperationException estava sem tratamento
Mensagem = "Falha ao obter informações de agrupamento da coluna para a tabela de destino. Se a tabela não estiver no banco de dados atual o nome deve ser qualificado usando o nome do banco de dados (por exemplo, [mydb]...[minhatabela](por exemplo, [mydb]...[minhatabela]); isso também se aplica a tabelas temporário (por exemplo, #mytable deve ser especificada como tempdb..#myTable). "
Source="System.Data"

Causa

Esse problema é causado por um problema no System.Data.dll arquivo.

Como Contornar

Para contornar este problema, evite ponto caracteres (.) em nomes de tabela.

Se você tiver usar um caractere de ponto (.) em um nome de tabela, use o caractere ponto (.) como parte da convenção de nomenclatura do SQL. Por exemplo, use um nome de tabela semelhante à seguinte:
tablename Server.Database.Schema.

Situação

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

Mais Informações

Etapas para reproduzir o comportamento

  1. No banco de dados Northwind, execute a seguinte instrução SQL: selecione
    select * into [test.33] where 1 = 0
    --Create a table named [test.33].
    
  2. Criar um aplicativo translation from VPE for Csharp Visual e, em seguida, execute o seguinte código:
    static void Main(string[] args)
            {
                SqlConnection con = new SqlConnection("Integrated Security=SSPI;Initial Catalog=Northwind;Data Source=.");
                con.Open();
                SqlConnection dst = new SqlConnection("Integrated Security=SSPI;Initial Catalog=Northwind;Data Source=.");
                dst.Open();
                SqlCommand com = new SqlCommand("select * from customers", con);
                SqlDataReader dr = com.ExecuteReader();
                SqlBulkCopy sbc = new SqlBulkCopy(dst);
                sbc.DestinationTableName = "Northwind.dbo.[Test.33]";
                sbc.WriteToServer(dr); // The failure occurs here.
                dst.Close();
                con.Close();
            }
    

Informações de pilha de chamada

at System.Data.SqlClient.SqlBulkCopy.AnalyzeTargetAndCreateUpdateBulkCommand(BulkCopySimpleResultSet internalResults)
       at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternal()
       at System.Data.SqlClient.SqlBulkCopy.WriteRowSourceToServer(Int32 columnCount)
       at System.Data.SqlClient.SqlBulkCopy.WriteToServer(IDataReader reader)

Propriedades

ID do artigo: 944389 - Última revisão: quinta-feira, 3 de janeiro de 2008 - Revisão: 2.1
A informação contida neste artigo aplica-se a:
  • Microsoft .NET Framework 2.0
  • Microsoft .NET Framework 3.0
  • Microsoft .NET Framework 3.5
Palavras-chave: 
kbmt kbexpertiseadvanced kbtshoot kbprb KB944389 KbMtpt
Traduçã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: 944389

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com