Partager via


Dépannage des problèmes liés à la génération de données

Vous pouvez rencontrer les problèmes suivants lorsque vous travaillez avec des plans de génération de données :

  • La génération de données échoue lorsque des contraintes de validation ne sont pas respectées

  • Impossible d'assigner un générateur de données d'expressions régulières à des colonnes de types définies par l'utilisateur

  • Impossible de générer des données pour des tables comportant des déclencheurs de suppression

  • Problèmes avec les générateurs liés aux données

  • Impossible de générer des données pour les colonnes SPARSE

La génération de données échoue lorsque des contraintes de validation ne sont pas respectées

Lorsque vous générez des données pour une colonne qui a une contrainte de validation, l'opération échoue si les données générées ne respectent pas cette contrainte. Vous pouvez utiliser la fenêtre Aperçu de la génération de données pour déterminer, avant d'exécuter le plan, si les données ne respectent pas la contrainte. Pour plus d'informations, consultez Comment : afficher un aperçu d'un plan de génération de données.

Pour résoudre ce problème, vous devez utiliser l'une des méthodes suivantes :

Impossible d'assigner un générateur de données d'expressions régulières à des colonnes de types définies par l'utilisateur avec des contraintes uniques

Lorsque vous essayez d'assigner un générateur de données à une colonne qui a une contrainte unique, la liste des générateurs disponibles affiche uniquement les générateurs qui peuvent produire des valeurs uniques. Étant donné que le générateur d'expressions régulières ne produit pas obligatoirement des valeurs uniques, vous ne pouvez pas l'utiliser pour remplir une colonne de type défini par l'utilisateur qui a une contrainte unique.

Pour générer des données pour une colonne de type défini par l'utilisateur avec une contrainte unique, vous devez utiliser le générateur lié aux données ou un générateur de données personnalisé. Pour plus d'informations, consultez Générateur lié aux données et Générer des données de test spécialisées à l'aide d'un générateur de données personnalisé.

Impossible de générer des données pour des tables comportant des déclencheurs de suppression

Certaines tables ont des déclencheurs qui vous empêchent de supprimer des lignes de ces tables. Si vous essayez de supprimer des lignes dans une telle table, le déclencheur annule l'opération de suppression. Vous ne pouvez pas générer des données normalement pour une telle table ou pour une table qui référence une telle table. Par exemple, vous ne pouvez pas générer des données normalement pour la table Employee sur la base de données AdventureWorks.

Pour générer des données pour une telle table, utilisez l'une des méthodes suivantes :

  • Désactivez ou supprimez le déclencheur, exécutez le plan de génération de données et réactivez ou ajoutez de nouveau le déclencheur.

  • Exécutez le plan de génération de données. Lorsque vous êtes invité à effacer le contenu des tables avant que de nouvelles lignes soient insérées, cliquez sur Non. Les nouvelles données que vous générez sont ajoutées à toutes les données existantes de la table, de sorte que le déclencheur de suppression ne s'active pas. Cette méthode peut produire des résultats imprévisibles, et des erreurs peuvent survenir si l'une des colonnes a une contrainte unique.

Problèmes avec les générateurs liés aux données

Si la génération de données échoue pour une ou plusieurs colonnes pour lesquelles vous avez spécifié un générateur lié aux données, la colonne Sortie du générateur dans la fenêtre Détails de la colonne affiche « Aucune sortie » ou « Aucune sortie convertible ». Les sections suivantes décrivent les raisons de ce type d'échec dans la génération des données.

Aucune sortie

Si la colonne Sortie du générateur affiche « Aucune sortie », l'instruction SELECT que vous avez spécifiée dans la propriété Select Query est probablement inexacte. Dans la mesure où l'instruction SELECT peut être difficile à visualiser dans la fenêtre Propriétés, vous pouvez copier et coller l'instruction dans l'éditeur Transact-SQL pour vérifier si elle est correcte.

Aucune sortie convertible

Si la colonne Sortie du générateur affiche « Aucune sortie convertible », le type de données que l'instruction SELECT retourne ne peut pas être converti en type de données pour la colonne pour laquelle vous générez des données. Par exemple, si vous souhaitez générer des données pour une colonne de type INT, l'instruction SELECT suivante provoque l'affichage du message « Aucune sortie convertible » :

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

Vous devez mettre à jour l'instruction SELECT pour retourner des données convertibles en INT, comme suit :

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

Impossible de générer des données pour les colonnes SPARSE

Lorsque vous essayez de générer des données pour une table qui contient une ou plusieurs colonnes SPARSE et un jeu COLUMN SET, une erreur du type suivant peut s'afficher : « Échec de la génération de données en raison de l'exception suivante : Le mappage de colonnes donné ne correspond à aucune des colonnes dans la source ou destination ».

Cela peut se produire, par exemple, si vous essayez de générer des données pour la table suivante :

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
)

Afin de générer des données pour une table qui contient des colonnes fragmentées et un jeu COLUMN SET, vous devez redéfinir la méthode préférée d'insertion de données sur « SqlV1CompatibilitySink » ou vous devez utiliser un générateur de données personnalisé.

Si vous utilisez la méthode « SqlV1CompatibilitySink », la génération de données risque d'être lente pour les tables de grande taille.

Pour plus d'informations sur la modification de la méthode préférée d'insertion de données, consultez Comment : spécifier les valeurs par défaut et options de générateurs de données. Pour plus d'informations sur la création et le déploiement d'un générateur de données personnalisé, consultez Générer des données de test spécialisées à l'aide d'un générateur de données personnalisé.