IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PowerAMC Discussion :

Power AMC & SQL Server : Generer des données de tests avec IDENTITY


Sujet :

PowerAMC

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 53
    Points : 21
    Points
    21
    Par défaut Power AMC & SQL Server : Generer des données de tests avec IDENTITY
    Bonjour,

    J'ai un MCD créé à partir de PowerAMC qui a été utilisé pour générer la base de données sous SQL Server. Je n'arrive pas à générer les données de test à cause de le propriété IDENTIY sur mes identifiants. Je sais qu'il faut que j'utilise "SET IDENTITY_INSERT [NomDeLaTable] ON" avant l'insertion mais je n'y arrive pas. D'après ce que j'ai compris de mes recherches, c'est qu'il faut aller dans SGBD/Editer le SGBD Courant et faire les modifs là. Cependant je n'y arrive toujours pas c'est pourquoi je viens chercher de l'aide sur ce forum !

    Merci d'avance !

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 005
    Points : 30 930
    Points
    30 930
    Billets dans le blog
    16
    Par défaut
    Bonsoir,


    Supposons que vous vouliez que l’identifiant VilleId de la table VILLE soit du type IDENTITY. Dans la fenêtre « Propriétés de la table », vous double-cliquez sur la ligne VilleId :



    Ceci provoque l'ouverture de la fenêtre « Propriétés de la colonne » et il ne vous reste plus qu’à y cocher la case « Identity » :



    Pourvu que ça marche...
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 53
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    Merci pour votre réponse rapide, mais je pense que je n'ai pas été assez précis sur mon problème. J'ai déjà coché cette case. Le problème vient justement que la colonne ait la propriété identity. La base a été générée. Maintenant je veux la remplir avec des données de tests => SGBD/Générer les données de test.
    Mais lors de la génération de ces données j'ai un message d'erreur
    "Cannot insert explicit value for identity column in table 'NomDeLaTable' when IDENTITY_INSERT is set to OFF."

    Il faudrait donc que je puisse, avant de commencer les insertions dans une table rajouter IDENTITY_INSERT ON ou OFF selon que l'on soit avant ou après l'insertion dans la table.

  4. #4
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 005
    Points : 30 930
    Points
    30 930
    Billets dans le blog
    16
    Par défaut
    Bonjour scartik,

    Quelle version de Power AMC utilisez-vous ? Pour ma part, il s’agit de la V11 et le script généré est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    delete from VILLE
    ;
    set identity_insert VILLE on
    ;
    insert into VILLE (VilleId, VilleNom, VIlleInsee, Superficie) values (3, 'ABCDEF', 'LC046', 13)
    ;
    ...
    
    set identity_insert VILLE off
    ;

    Citation Envoyé par scartik
    D'après ce que j'ai compris de mes recherches, c'est qu'il faut aller dans SGBD/Editer le SGBD Courant et faire les modifs là
    J’ai essayé de bricoler les paramètres « Profile » pour qu’AMC ne génère pas « set identity_insert », mais en vain...

    Pourriez-vous me transmettre un fichier .MPD juste avec une table ? J’essaierai de l’ouvrir et comparer.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 53
    Points : 21
    Points
    21
    Par défaut
    j'utilise la version 15.1 le fichier ne serait pas compatible je pense. Les scripts générés par ma version ne contiennent rien concernant identity_insert.

  6. #6
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 005
    Points : 30 930
    Points
    30 930
    Billets dans le blog
    16
    Par défaut
    Bonsoir,


    Citation Envoyé par scartik Voir le message
    j'utilise la version 15.1 le fichier ne serait pas compatible je pense.
    Bon. Je me suis débrouillé autrement pour récupérer un fichier .MCD créé avec la V15. Je ne peux l’ouvrir qu’en lecture, mais je peux malgré tout voir les différences avec la V11.

    Il y a effectivement une différence : avec la V11, « set identity_insert on » et « set identity_insert off » sont injectés d’office dans le script, alors qu’avec la V15 ils sont paramétrables :

    D'après la doc : Editer le SGBD courant puis Script\Objects\Table\DefOptions :



    Et Script\Objects\Table\InsertIdentityOn (ou InsertIdentityOff) :



    La doc n’est pas particulièrement loquace au sujet de ces paramètres, mais il n’y a pas de raison pour que les « set identity_insert » ne figurent pas dans le script : on me dirait qu’il y a un bug dans tout ça (ou un paramètrre bien caché à forcer) que ça ne m’étonnerait qu’à moitié...
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 53
    Points : 21
    Points
    21
    Par défaut
    Merci pour cette réponse. Je suis allé vérifier le paramètre DefOption. Il n'avait pas de valeur je lui ai mis
    set identity_insert [%QUALIFIER%]%@OBJTCODE% on
    mais ça n'a rien changé au niveau du script généré.

    Toujours pas de Identity_Insert à l'horizon ...

    J'ai l'impression que toutes les actions de Script/Objects/Table sont des propriétés concernant la Table mais pas forcement l'insertion d'une ligne dans une table. Ce n'est peut être pas le bon endroit ??

  8. #8
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 005
    Points : 30 930
    Points
    30 930
    Billets dans le blog
    16
    Par défaut
    Bonjour scartik,


    J’ai fouillé dans la doc (voire dans la Toile), sans rien trouver qui puisse nous aider.

    On est dans un cas limite : set identity_insert concerne à la fois le niveau INSERT, donc le langage de manipulation des données (LMD) et le niveau CREATE TABLE, donc le langage de description des données (LDD), à cause du paramètre IDENTITY associé à la clé primaire. On est un peu comme si chez l’éditeur on avait chargé à la fois Louis (LMD) et Laurent (LDD) de prendre en compte set identity_insert, mais sans charger qui que ce soit de vérifier que la soudure a été faite et fonctionne...

    Le mieux serait que vous soumettiez votre problème à l’éditeur (qui a peut-être un patch dans ses tiroirs).
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/05/2009, 17h32
  2. Réponses: 11
    Dernier message: 26/12/2006, 19h05
  3. Réponses: 5
    Dernier message: 12/12/2006, 16h24
  4. Réponses: 2
    Dernier message: 04/04/2006, 10h34
  5. tableau descriptif de SQL server selon des critères techniq
    Par h.sofia dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/02/2006, 16h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo