Partager via


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

Mise à jour : novembre 2007

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

  • Impossible d'ouvrir le plan 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 d'ouvrir le plan de génération de données

Si un générateur de données qui est assigné à une colonne d'un plan de génération de données existant est introuvable, vous ne pouvez pas ouvrir le plan, et le message d'erreur suivant s'affiche :

Échec du chargement de NomFichier.dgen. Impossible de trouver un générateur disponible de type NomGénérateur. Résolvez l'erreur en modifiant manuellement et en rechargeant le fichier dgen.

Cette erreur peut avoir les causes et résolutions suivantes :

  • Le nom de la classe du générateur de données a changé. Si seul le nom a changé, vous pouvez ouvrir le fichier .dgen dans un éditeur de texte et modifier manuellement le code XML. Vous devez remplacer le nom du générateur de données pour les colonnes affectées par le nouveau nom.

  • Le générateur de données a été désapprouvé. Vous pouvez ouvrir le fichier .dgen dans un éditeur de texte et modifier manuellement le code XML. Dans ce cas, vous devez supprimer la totalité de l'élément <ColumnConfig> (et tous les sous-éléments) du code XML pour toutes les colonnes affectées. Ouvrez le plan de génération de données dans Visual Studio et acceptez les modifications du schéma. Les générateurs de données par défaut sont assignés aux colonnes affectées. Vous devez également à nouveau sélectionner les colonnes affectées pour les inclure dans le plan de génération de données. Pour plus d'informations, consultez Comment : spécifier des colonnes pour la génération de données.

  • L'entrée pour le générateur de données est supprimée du fichier extensions.xml. Vous devez modifier le fichier extensions.xml et ajouter un élément <extensions> pour le générateur de données. Vous devez fermer et rouvrir Visual Studio pour que la modification soit prise en compte.

  • Le fichier .dll et le fichier extensions.xml sont désynchronisés. Le générateur de données n'est pas présent dans le fichier .dll qui est défini dans le fichier extensions.xml. Vous devez redéployer la version correcte de l'assembly et du fichier extensions.xml pour résoudre le problème. Vous devez fermer et rouvrir Visual Studio pour que la modification soit prise en compte.

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 voir, 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 :

  • Utilisez les propriétés Min et Max pour contrôler la façon dont les données sont générées. Supposons, par exemple, que vous avez une table qui contient deux colonnes nommées StartDate et EndDate, et une contrainte de validation qui requiert que StartDate soit antérieur à EndDate. Pour atteindre cet objectif, vous pouvez affecter à la propriété Max de la colonne StartDate une valeur antérieure à celle de la propriété Min de la colonne EndDate. Pour plus d'informations, consultez Spécification des détails de génération de données pour une colonne.

  • Utilisez le générateur lié aux données. Pour plus d'informations, consultez Générateur lié aux données.

  • Utilisez un générateur de données personnalisé. Pour plus d'informations, consultez Création de générateurs de données personnalisés.

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 Création de générateurs de données personnalisés.

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 :

  • Supprimez le déclencheur, exécutez le plan de génération de données, puis rajoutez 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 de défaillance de 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 (T-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

Pour plus d'informations sur SELECT et d'autres instructions T-SQL, consultez « Référence Transact-SQL (moteur de base de données) » sur le site Web Microsoft.

Voir aussi

Concepts

Vue d'ensemble de la terminologie de Database Edition

Autres ressources

Génération de données avec les générateurs de données