|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() domdom Développeur informatique Inscription : mars 2011 Messages : 70 ![]() |
voila ce schéma
![]() et voila la question: Écrire un (des) déclencheur(s) qui empêche(nt) d'avoir dans la BD des personnes ayant écrit plus de 2 œuvres et étant traducteur d'un livre la réponse sur la table ecrit_par : Code :
+ ce que je comprends pas: on a mis after insert faut pas accepter l'enregistrement , on devrait pas déclencher le trigger avant? cette ligne : et là aussi y'a-t-il une erreur ?? : et c'est invalider la saisie ,mais transaction je comprends pas |
||
|
|
00
|
|
|
#2 | ||||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 674 ![]() |
Bonjour,
Votre trigger est faux de par le simple fait qu'il n'est pas ensembliste. Citation:
SET NOCOUNT ON est une option de session (c'est-à-dire le contexte d'exécution de votre requête) qui indique à SQL Server de ne pas retourner au client (votre application, SQL Server Management Studio, ...) le nombre de lignes affectées par le trigger. Donc aucun problème, c'est même une bonne pratique. Citation:
Une base de donnée relationnelle SQL est conçue pour stocker, modifier et restituer des données, mais pas pour les présenter. Lorsque l'application va réaliser un INSERT dans cette table, cet INSERT va déclencher le trigger, et le code qu'il exécute fait partie, transactionnellement, de l'INSERT : si l'INSERT plante, le trigger n'est pas exécuté. Et si le trigger plante, ou que l'on fait un ROLLBACK, l'INSERT est annulé. Je vous conseille de lire l'article de SQLPro sur le sujet (1). Voyons donc comment faire avec un trigger INSTEAD OF INSERT : dans ce cas, si la contrainte est vérifiée, on réalise l'INSERT; sinon, on ne fait rien, et on lève une erreur : Code :
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
||||
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() domdom Développeur informatique Inscription : mars 2011 Messages : 70 ![]() |
un très grand merci pour toi c'est trop gentil surtout qu'on trouves des problème a comprendre nos profs ; ils sont trop nuls
|
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 674 ![]() |
Malheureusement les professeurs ont très peu de temps pour nous donner les requis nécessaires à la compréhension de ce qu'est exactement une base de données relationnelle SQL, et bien peu d'entre eux ont l'occasion (ou la passion ?) de coder intensivement en SQL...
Quand on entre dans le monde du travail, la chute est longue ... Demandez à SQLPro, il en sait quelque chose en tant qu'enseignant au CNAM @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
00
|
Copyright © 2000-2012 - www.developpez.com