Share via


Solución de problemas de generación de datos

Actualización: noviembre 2007

Al trabajar con planes de generación de datos pueden surgir los problemas siguientes:

  • No se puede abrir el plan de generación de datos

  • Se produce un error en la generación de datos cuando se infringen restricciones CHECK

  • No es posible asignar el generador de datos Expresión regular a columnas que tienen un tipo definido por el usuario

  • No es posible generar datos para tablas que tienen desencadenadores de eliminación

  • Problemas con los generadores enlazados a datos

No se puede abrir el plan de generación de datos

Si no se encuentra un generador de datos asignado a una columna en un plan de generación de datos existente, no se podrá abrir el plan y aparecerá el siguiente mensaje de error:

No se pudo cargar NombreArchivo.dgen. No se encuentra un generador de datos disponible con el tipo NombreGenerador. Para corregir el error, edite manualmente el archivo .dgen y vuelva a cargarlo.

Algunas causas y soluciones posibles de este error son:

  • El nombre de la clase del generador de datos ha cambiado. Si sólo ha cambiado el nombre, puede abrir el archivo .dgen en un editor de texto y cambiar manualmente los datos XML. Debe actualizar el nombre del generador de datos en las columnas afectadas.

  • El generador de datos se ha quedado obsoleto. Puede abrir el archivo .dgen en un editor de texto y cambiar manualmente los datos XML. En este caso, debe quitar de los datos XML el elemento < ColumnConfig > completo (y todos sus elementos secundarios) para todas las columnas afectadas. Abra el plan de generación de datos en Visual Studio y acepte los cambios del esquema. Se asignarán los generadores de datos predeterminados a las columnas afectadas. También debe volver a seleccionar las columnas afectadas para incluirlas en el plan de generación de datos. Para obtener más información, vea Cómo: Especificar columnas para la generación de datos.

  • Se quita la entrada del generador de datos del archivo extensions.xml. Debe cambiar el archivo extensions.xml y agregar un elemento <extensions> para el generador de datos. Debe cerrar y volver a abrir Visual Studio para que el cambio surta efecto.

  • El archivo .dll y el archivo extensions.xml no están sincronizados. El generador de datos no está presente en el archivo .dll que se define en el archivo extensions.xml. Debe volver a implementar la versión correcta del ensamblado y el archivo Extensions.xml para solucionar el problema. Para que el cambio surta efecto, debe cerrar y volver a abrir Visual Studio.

Se produce un error en la generación de datos cuando se infringen restricciones CHECK

Al generar datos para una columna que tiene una restricción CHECK, se produce un error en la operación si se generan datos que infringen la restricción. Puede usar la ventana Vista previa de generación de datos para ver si los datos infringen la restricción antes de ejecutar el plan. Para obtener más información, vea Cómo: Mostrar una vista previa de un plan de generación de datos.

Para solucionar este problema debe usar uno de los métodos siguientes:

  • Use las propiedades Mín y Máx para controlar la formar de generar datos. Por ejemplo, suponga que tiene una tabla con dos columnas denominadas StartDate y EndDate, y una restricción CHECK que requiere que StartDate preceda a EndDate. Para solucionar el problema, puede establecer la propiedad Máx de la columna StartDate en un valor inferior al de la propiedad Mín de la columna EndDate. Para obtener más información, vea Especificar los detalles de la generación de datos para una columna.

  • Use el generador enlazado a datos Para obtener más información, vea Generador enlazado a datos.

  • Use un generador de datos personalizados. Para obtener más información, vea Crear generadores de datos personalizados.

No es posible asignar el generador de datos Expresión regular a columnas que tienen un tipo definido por el usuario y restricciones UNIQUE

Al intentar asignar un generador de datos a una columna que tiene una restricción UNIQUE, la lista de generadores disponibles sólo muestra los generadores que pueden generar valores únicos. Como no hay la seguridad de que el generador Expresión regular genere valores únicos, no se puede usar para rellenar una columna que tiene un tipo definido por el usuario y una restricción UNIQUE. Para generar datos para una columna que tiene un tipo definido por el usuario con una restricción UNIQUE, debe usar el generador enlazado a datos o un generador de datos personalizado. Para obtener más información, vea Generador enlazado a datos y Crear generadores de datos personalizados.

No es posible generar datos para tablas que tienen desencadenadores de eliminación

Algunas tablas tienen desencadenadores que evitan la eliminación de filas. Si intenta eliminar filas en una tabla de este tipo, el desencadenador revertirá la operación de eliminación. Para este tipo de tabla o para una tabla que haga referencia a este tipo de tabla no se pueden generar datos de la manera habitual. Por ejemplo, no puede generar datos para la tabla Employee de la base de datos AdventureWorks de la manera habitual.

Para generar datos para este tipo de tabla, use uno de los métodos siguientes:

  • Elimine el desencadenador, ejecute el plan de generación de datos y vuelva a agregar el desencadenador.

  • Ejecute el plan de generación de datos. Cuando se le pregunte si desea borrar el contenido de las tablas antes de insertar filas nuevas, haga clic en No. Los nuevos datos que genere se agregarán a los datos existentes en la tabla, de forma que el desencadenador de eliminación no se active. Este método puede provocar resultados imprevisibles y podrían producirse errores si alguna de las columnas tiene una restricción UNIQUE.

Problemas con los generadores enlazados a datos

Si se produce un error en la generación de los datos para una o varias columnas para las que ha especificado un generador enlazado a datos, en la columna Resultado del generador de la ventana Detalles de columna se muestra "Sin resultado" o "Sin resultado obligatorio". En las secciones siguientes se describen las razones de este tipo de error de generación de datos.

Sin resultado

Si en la columna Resultado del generador se muestra "Sin resultado", probablemente la instrucción SELECT que especificó en la propiedad Select Query sea incorrecta. Como la instrucción SELECT puede ser difícil de ver en la ventana Propiedades, tal vez desee copiarla y pegarla en el editor de Transact-SQL (T-SQL) para comprobar si es correcta.

Sin resultado obligatorio

Si en la columna Resultado del generador se muestra "Sin resultado obligatorio", el tipo de datos que la instrucción SELECT devuelve no se puede convertir al tipo de datos de la columna para la que se generan los datos. Por ejemplo, si desea generar datos para una columna de tipo INT, se mostraría "Sin resultado obligatorio" si utilizara la instrucción SELECT siguiente:

SELECT RAND() * (column1 - column2)  AS Column1 FROM Table1

Debe actualizar la instrucción SELECT para devolver datos que puedan convertirse a INT del modo siguiente:

SELECT CAST(RAND() * (column1 - column2) AS INT)  AS Column1 FROM Table1

Para obtener más información sobre SELECT y otras instrucciones de T-SQL, vea "Referencia a Transact-SQL" en el sitio web de Microsoft.

Vea también

Conceptos

Introducción a la terminología de Database Edition

Otros recursos

Generar datos con generadores de datos