Solución de problemas de generación de datos
Al trabajar con planes de generación de datos pueden surgir los problemas siguientes:
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 pueden generar datos para las columnas SPARSE
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 un plan de generación de datos.
Para solucionar este problema debe usar uno de los métodos siguientes:
Use las propiedades Min y Max para controlar la forma 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 sea anterior a EndDate. Para solucionar el problema, puede establecer la propiedad Max de la columna StartDate en un valor inferior al de la propiedad Min de la columna EndDate. Para obtener más información, vea Especificar 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 Generar datos de pruebas especializados con un generador de datos personalizado.
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 Generar datos de pruebas especializados con un generador de datos personalizado.
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 de la manera habitual datos para la tabla Employee de la base de datos AdventureWorks.
Para generar datos para este tipo de tabla, use uno de los métodos siguientes:
Deshabilite o elimine el desencadenador, ejecute el plan de generación de datos y habilite o agregue de nuevo 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 de una o varias columnas para las que ha especificado un generador enlazado a datos, en la columna Salida del generador de la ventana Detalles de columna se muestra "Sin salida" o "Sin salida obligatoria". En las secciones siguientes se describen las razones de este tipo de error de generación de datos.
Sin resultado
Si en la columna Salida del generador se muestra "Sin salida", 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 Transact-SQL para comprobar si es correcta.
Sin resultado obligatorio
Si en la columna Salida del generador se muestra "Sin salida obligatoria", 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
No se pueden generar datos para las columnas SPARSE
Si intenta generar datos para una tabla que contiene una o varias columnas SPARSE y un conjunto COLUMN_SET, puede producirse el siguiente error: "Error en la generación de datos debido a la siguiente excepción: La ColumnMapping proporcionada no coincide con ninguna columna del origen o del destino".
Este error podría producirse, por ejemplo, si intenta generar datos para la tabla siguiente:
CREATE TABLE [dbo].[SparseTable]
(
ID INT PRIMARY KEY,
C1 varchar(20) SPARSE NULL,
C2 smallint SPARSE NULL,
C3 varchar(20) SPARSE NULL,
SpecialPurposeColumns XML COLUMN_SET FOR ALL_SPARSE_COLUMNS
)
Para generar los datos de una tabla que contiene columnas SPARSE y un conjunto COLUMN_SET, debe cambiar el método preferido de inserción de datos a "SqlV1CompatibilitySink" o debe usar un generador de datos personalizado.
Si usa "SqlV1CompatibilitySink", la generación de datos podría registrar un rendimiento lento en tablas grandes.
Para obtener más información acerca de cómo se cambia el método preferido de inserción de datos, vea Cómo: Especificar valores predeterminados y opciones para generadores de datos. Para obtener más información acerca de cómo puede crear e implementar un generador de datos personalizados, vea Generar datos de pruebas especializados con un generador de datos personalizado.