-
La nuit portant conseil, j'ai trouvé la "solution" ce matin dans la douche ^^.
En fait, j'avais déjà remarqué que quand je fais un clic droit sur une DB et que je fais une nouvelle query, ça marche nickel. Par contre si je la sauvegarde pour la refaire plus tard, là ça foire au niveau des noms (j'dois ajouter des tonnes de préfixes partout). C'est ce qui se passait ici en fait. Comme j'avais pas tilter qu'il fallait exécuter le code pour créer le trigger (je pensais que c'était une espèce de procédure stockée), je l'avais d'abord sauvegardé puis l'avais réouvert par après.
Du coup, j'ai fait un nouveau trigger, copier/coller le code dedans et hop, mon trigger est créé. Je n'ai plus qu'à tester son bon fonctionnement.
...TEST...
Et voilà, ça fonctionne parfaitement.
Il a fallu le temps mais au moins, j'aurai appris quelque chose.
Un tout grand merci de m'avoir consacré du temps.
Griftou.
-
un trigger est une procédure stockée ... mais qui s'execute tout seul sur un évènement de la table
et à mon avis t'as pas saisi un truc, parce que le préfixage est facultatif quand on est connecté sur la bonne base
relis ce que je dis sur le combobox de sélection de la base en cours ...
-
Tu as tout à fait raison. Hier j'avais du ajouter les préfixes car, comme je viens de l'expliquer, quand on sauve dans un fichier .sql une query ou bien une commande de création de trigger comme c'est le cas ici, quand on ouvre ce fichier après pour exécuter le code, alors management studio ne sais plus à quoi il doit le rattacher. C'est pour ça qu'il fallait tous les préfixes devant.
-
1 pièce(s) jointe(s)
bon arrete de faire le boulet !
sur un sql server il peut y avoir plein de bases, par défaut il y en a déjà plusieurs (qui sont dites systeme)
quand tu as le code écrit dans management studio, il faut bien qu'il sache sur quelle base il doit le faire
et comme j'ai dit précedemment, soit avec le mot clé use, soit avec le combobox en haut à gauche !
voir pièce jointe
en étant connecté sur une base A on peut quand meme "travailler" sur une base B en préfixant du nom de la base
base.propriétaire.objet le propriétaire étant facultatif aussi, on peut écrire base..objet
donc si tu es sur la base master ta table tb_facture n'existe pas dessus et donc sql serve rale
et un trigger si tu n'execute pas le code du create trigger, il n'existe pas !
http://www.developpez.net/forums/man...t%20studio.png
-
Au temps pour moi.
Je t'avoue que je n'avais jamais vu cette combobox avant que tu ne me la fasses remarquer.
Cela étant, ce que j'ai dit n'en est pas faux pour autant.