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

Développement SQL Server Discussion :

Verification date avant insertion par trigger


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2011
    Messages : 92
    Points : 67
    Points
    67
    Par défaut Verification date avant insertion par trigger
    Bonjour
    Voici mon problème
    Lors de mon inscription, je dois vérifier que la date limite pour celle- ci n'est pas dépassée.
    Ma date d'inscription est égale à la date du jour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ALTER TRIGGER [dbo].[trCheckDateInsc]
     ON [dbo].[inscription]
     FOR insert
     AS
         declare @Date datetime
    	select @Date = (SELECT [DateReception] FROM [dbo].[reception])
    	 IF GETDATE() > @Date
         BEGIN
            RAISERROR (15600,-1,-1, 'L''inscription a cette reception est cloturée')
           ROLLBACK TRANSACTION
           RETURN
         END
    Merci

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Simplifié et modifié pour RAISERROR :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TRIGGER [dbo].[trCheckDateInsc]
    ON [dbo].[inscription]
    FOR insert
    AS
    SET NOCOUNT ON;
    IF GETDATE() > (SELECT [DateReception] FROM [dbo].[reception])
    BEGIN
       RAISERROR ('L''inscription a cette reception est cloturée', 16, 1)
       ROLLBACK TRANSACTION
    END
    Vous pouvez aussi utiliser THROW à la place de RAISE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       THROW 50000, 'L''inscription a cette reception est cloturée', 1;
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Contrôle date avant insertion dans base de données
    Par Invité dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 24/02/2014, 18h15
  2. Test chevauchement Date avant insert
    Par rockley dans le forum DB2
    Réponses: 9
    Dernier message: 08/08/2013, 14h26
  3. [9.0] Trigger pour formater des dates avant insertion
    Par Logarithmix dans le forum Requêtes
    Réponses: 1
    Dernier message: 13/05/2013, 14h22
  4. Réponses: 8
    Dernier message: 23/11/2011, 15h07
  5. [MySQL] Format date avant insertion
    Par Darkcristal dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 30/06/2010, 10h27

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