DetailPage-MSS-KB

Base de Dados de Conhecimento

ID do artigo: 944389 - Última revisão: quinta-feira, 3 de janeiro de 2008 - Revisão: 2.1

 

Nesta página

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)

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á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: 944389  (http://support.microsoft.com/kb/944389/en-us/ )
Compartilhar
Opções de suporte adicionais
Fóruns de Suporte do Microsoft Community
Contate-nos diretamente
Localize um parceiro certificado da Microsoft
Microsoft Store