Puede recibir un mensaje de error cuando intenta rellenar una tabla de SQL Server 2000 con un plan de generación de datos en Visual Studio 2005 Team Edition for Database Professionals: "System.Data.SqlClient.SqlError: conversión implícita no autorizada de datos escriba nte

Síntomas

Cuando intenta rellenar una tabla de Microsoft SQL Server 2000 con un plan de generación de datos en Microsoft Visual Studio 2005 Team Edition for Database Professionals, puede recibir un mensaje de error similar al siguiente:
Tabla nombreTabla : System.Data.SqlClient.SqlError: no permitido conversión implícita del tipo de datos ntext a datos de tipo varchar, ' deTableName', columna 'ColumnName' de la tabla. Utilice la función CONVERT para ejecutar esta consulta.
Nota: Este problema se produce cuando intenta rellenar el campo para un campo varchar o nvarchar que contiene más de 4.000 caracteres.

Causa

Este problema se produce porque el proveedor SqlClient convierte el tipo de datos varchar o nvarchar a un texto o un tipo de datos ntext . Sin embargo, no se puede convertir a un tipo de datos text o ntext a un tipo de datos varchar o nvarchar de SQL Server 2000.

Nota: En Microsoft SQL Server 2005, el proveedor SqlClient utiliza un tipo de datos varchar (max) o nvarchar (max) en lugar del tipo de datos text o ntext . Por lo tanto, este problema no ocurre en SQL Server 2005.

Solución alternativa

Para evitar este problema, asegúrese de que las columnas varchar en una base de datos de SQL Server 2000 no contienen más de 4.000 caracteres.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Más información

Pasos para reproducir el problema

  1. Inicie Microsoft Visual Studio 2005.
  2. En el menú archivo, elija nuevo y, a continuación, haga clic en proyecto.
  3. Expanda la carpeta Proyectos de base de datosy, a continuación, haga clic en Microsoft SQL Server.
  4. Haga clic en SQL Server 2000, escriba Database1 en el cuadro nombre y, a continuación, haga clic en Aceptar.
  5. En el Explorador de soluciones, expanda Objetos de esquema, haga clic en tablas, haga clic en Agregary, a continuación, haga clic en tabla.
  6. En el cuadro nombre , escriba MaxVarChary, a continuación, haga clic en Agregar.
  7. Reemplace el código en la tabla dbo. MaxVarChar.table.sql el archivo con el ejemplo de código siguiente.
    CREATE TABLE [dbo].[MaxVarChar](
    [VarChar_maxLength] [varchar] (8000) COLLATE SQL_Latin1_General_CP1_CS_AS NULL
    ) ON [PRIMARY]
  8. En el menú datos , elija Editor de T-SQLy, a continuación, haga clic en Ejecutar SQL.
  9. En el cuadro de diálogo Conectar a base de datos , haga clic en la conexión de base de datos en la lista de conexiones y, a continuación, haga clic en Aceptar.
  10. En el Explorador de soluciones, haga clic derecho en Planes de generación de datos, elija Agregary, a continuación, haga clic en Plan de generación de datos.
  11. En el cuadro nombre , escriba DataGenerationPlan1.dgeny, a continuación, haga clic en Agregar.
  12. Haga clic para seleccionar la dbo de . MaxVarChar casilla de verificación.
  13. En el menú datos , seleccione Generador de datosy, a continuación, haga clic en Generar datos.

    Nota: Haga clic en si el ¿desea borrar el contenido de las tablas seleccionadas antes de insertar filas nuevas? aparece el cuadro de diálogo.
  14. En el cuadro de diálogo Conectar a base de datos , haga clic en la conexión de base de datos en la lista de conexiones y, a continuación, haga clic en Aceptar.

    Recibe el mensaje de error que se menciona en la sección "Síntomas".
Propiedades

Id. de artículo: 928965 - Última revisión: 9 ene. 2017 - Revisión: 1

Comentarios