Bonjour à tous !

Voila, je me lance dans le developpement côté base de données depuis peu de temps.
(Ya deux jour en faite :s)

J'ai une petite application de réservation de salle de réunion Access (Pas glorieu:/),
cependant je souhaite la passer sous SQL Serveur avec une interface Web.

Pour éviter de faire les contrôles au niveau de l'application je pensais les faire côté base de données à l'aide des trigger et procédure stockées.

Voila mon premier triggers :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
CREATE TRIGGER TRIGG_PLAGE
ON OCCUPER
FOR INSERT
AS
BEGIN
 
    DECLARE @MOT AS CHAR(250);
 
    SELECT @MOT=Occuper.Motif
    FROM OCCUPER,INSERTED
    WHERE
                 INSERTED.ID_Reservation<>Occuper.ID_Reservation
        AND INSERTED.IdentifiantSalle = Occuper.IdentifiantSalle
        AND DATEDIFF(day,Occuper.DateRes,Inserted.DateRes) = 0
        AND
           (
            (
                    Inserted.HDeb>=Occuper.HDeb
                AND    Inserted.HDeb<Occuper.HFin
             )
            OR
            (
                    Inserted.HFin>Occuper.HDeb
                AND    Inserted.HFin<=Occuper.HFin
 
             )
            OR
            (
                    Inserted.HDeb<=Occuper.HDeb
                AND    Inserted.HFin>=Occuper.HFin
 
             )   
           )
 
 
    IF LEN(@MOT)>0 
    BEGIN
        SET @MOT='Il y à déjà une réservation ce jour la'
        RAISERROR 34000 @MOT
        ROLLBACK TRANSACTION
    END
END
Il contrôle si la réservation en cour chevauche ou non une réservation déjà enregistrée.

Je me suis rendu compte de deux choses :

1) Si les paramètres que je me sert dans ma requete ne sont pas renseigner, le trigger ne sert plus à rien.
Comment peut-on Vérifier si tous les champ de la requete d'insertion sont renseignés au niveau de la base de données(Si c'est possible et conseiller)?

2) Pourquoi je dois exclure l'enregistrement que j'insère ? Si je l'exclus pas, impossible de faire un enregistrement.


Merci de vos réponse future (Si il y en a )