Poderá receber uma mensagem de erro quando tentar povoar uma tabela de SQL Server 2000 com um plano de geração de dados no Visual Studio 2005 Team Edition para profissionais de base de dados: "System.Data.SqlClient.SqlError: não permitido conversão implícita de dados escreva nte

Traduções de Artigos Traduções de Artigos
Artigo: 928965 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Quando tentar povoar uma tabela do Microsoft SQL Server 2000 com um plano de geração de dados no Microsoft Visual Studio 2005 Team Edition para profissionais de base de dados, receberá uma mensagem de erro semelhante à seguinte:
Tabela TableName: System.Data.SqlClient.SqlError: não permitido conversão implícita de dados ntext de tipo de dados escreva varchar, ' TableName ', ' ColumnName ' coluna da tabela. Utilize a função converter para executar esta consulta.
Nota Este problema ocorre quando tenta preencher o campo para um campo varchar ou nvarchar que contém mais de 4000 caracteres.

Causa

Este problema ocorre porque o fornecedor SqlClient converte o tipo de dados varchar ou nvarchar para um texto ou o tipo de dados ntext . No entanto, não é possível converter um tipo de dados ntext ou de texto para um tipo de dados varchar ou nvarchar no SQL Server 2000.

Nota No Microsoft SQL Server 2005, o fornecedor de SqlClient utiliza um tipo de dados varchar(max) ou nvarchar(max) em vez do tipo de dados ntext ou de texto . Por conseguinte, este problema não ocorre no SQL Server 2005.

Como contornar

Para contornar este problema, certifique-se de que varchar colunas numa base de dados do SQL Server 2000 não contêm mais de 4000 caracteres.

Ponto Da Situação

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

Mais Informação

Passos para reproduzir o problema

  1. Inicie o Microsoft Visual Studio 2005.
  2. No menu ficheiro , aponte para Novo e, em seguida, clique em projecto .
  3. Expanda Projectos de base de dados e, em seguida, clique em Microsoft SQL Server .
  4. Clique em SQL Server 2000 , escreva BaseDeDados1 na caixa nome e, em seguida, clique em OK .
  5. No Solution Explorer, expanda Objectos de esquema , clique com o botão direito do rato em tabelas , clique em Adicionar e, em seguida, clique em tabela .
  6. Na caixa nome , escreva MaxVarChar e, em seguida, clique em Adicionar .
  7. Substitua o código no ficheiro dbo.MaxVarChar.table.sql com o seguinte exemplo de código.
    CREATE TABLE [dbo].[MaxVarChar]
    (
    [VarChar_maxLength] [varchar] (8000) COLLATE SQL_Latin1_General_CP1_CS_AS NULL
    ) ON [PRIMARY]
  8. No menu ' dados ', aponte para T-SQL Editor e, em seguida, clique em Executar SQL .
  9. Na caixa de diálogo ligar à base de dados , clique na ligação da base de dados na lista de ligação e, em seguida, clique em OK .
  10. No Solution Explorer, clique com o botão direito do rato em Planos de geração de dados , aponte para Adicionar e clique em Plano de geração de dados .
  11. Na caixa nome , escreva DataGenerationPlan1.dgen e, em seguida, clique em Adicionar .
  12. Clique para seleccionar a caixa de verificação dbo.MaxVarChar .
  13. No menu ' dados ', aponte para Gerador de dados e, em seguida, clique em Gerar dados .

    Nota Clique em Sim (Yes ) se o deseja limpar o conteúdo das tabelas seleccionadas antes de inserir novas linhas? é apresentada a caixa de diálogo.
  14. Na caixa de diálogo ligar à base de dados , clique na ligação da base de dados na lista de ligação e, em seguida, clique em OK .

    Recebe a mensagem de erro mencionada na secção "Sintomas".

Propriedades

Artigo: 928965 - Última revisão: 13 de dezembro de 2006 - Revisão: 1.0
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Studio 2005 Team Edition for Database Professionals
Palavras-chave: 
kbmt kbtshoot kbpubtypekc kberrmsg kbprb KB928965 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 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: 928965

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