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 :

Contrainte pour limiter le nombre de lignes


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 136
    Points : 57
    Points
    57
    Par défaut Contrainte pour limiter le nombre de lignes
    salut tout monde

    je voudrai écrire une requête qui va empéche d'inserre pas plus de 3 personnes dans une equipe

    voici mes tables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Create Table equipe(Id_equipe    Integer    primary  not null,
      nomepquipe       Varchar(40) not null,
    )
     
    Create Table joueur(Id_joue    Integer  primary   not null,
      nomjoue       Varchar(40) not null,
    )
     
     
    Create Table equipecomposede(Id_equipe    Integer   not null,
      nom      Id_jou not null,
      Constraint  pk_q primary key(Id_joue ,Id_equipe)
    )

    merci pour votre aide

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    J'ai un peu retouché votre modèle physique de données :

    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
    CREATE TABLE TbEquipe
    (
    	IdEquipe INT IDENTITY CONSTRAINT PK_TbEquipe PRIMARY KEY,
    	nomEquipe VARCHAR(40) NOT NULL
    )
    GO
     
    CREATE TABLE TbJoueur
    (
    	IdJoueur INT IDENTITY CONSTRAINT PK_TbJoueur PRIMARY KEY,
    	nomJoueur VARCHAR(40) NOT NULL,
    )
    GO
     
    CREATE TABLE TbEquipeComposeeDe
    (
    	IDEquipeComposeeDe INT IDENTITY CONSTRAINT PK_TbEquipeComposeeDe PRIMARY KEY,
    	IdEquipe INT NOT NULL CONSTRAINT FK_TbEquipeComposeeDe_IdEquipe FOREIGN KEY (IdEquipe) REFERENCES TbEquipe (IdEquipe),
    	IdJoueur INT NOT NULL CONSTRAINT FK_TbEquipeComposeeDe_IdJoueur FOREIGN KEY (IdJoueur) REFERENCES TbJoueur (IdJoueur),
    	CONSTRAINT UQ_TbEquipeComposeeDe UNIQUE (IdEquipe, IdJoueur)
    )
    GO
    Pour vérifier qu'on ne peut pas attribuer plus de 3 joueurs à une équipe, vous devez implémenter un trigger :

    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
    CREATE TRIGGER TR_AIU_TbEquipeComposeeDe
    	ON TbEquipeComposeeDe
    AFTER INSERT, UPDATE
    AS
    BEGIN
    	IF EXISTS
    	(
    		SELECT IdEquipe, COUNT(*)
    		FROM dbo.TbEquipeComposeeDe ECD
    		JOIN INSERTED I ON ECD.IdEquipe = I.IdEquipe
    		GROUP BY IdEquipe
    		HAVING COUNT(*) > 3
    	)
    	BEGIN
    		RAISERROR ('Impossible d''inclure plus de 3 joueurs dans une équipe', 16, 1)
    	END
    END
    @++

Discussions similaires

  1. Réponses: 7
    Dernier message: 21/01/2011, 15h56
  2. Réponses: 1
    Dernier message: 27/03/2009, 10h16
  3. Limiter un nombre de lignes
    Par Trunks dans le forum Access
    Réponses: 5
    Dernier message: 25/01/2006, 13h29
  4. [C#] Limité le nombre de lignes dans une DataView ...
    Par maitrebn dans le forum Accès aux données
    Réponses: 5
    Dernier message: 07/11/2005, 23h57
  5. Limiter le nombre de Ligne d'un RichEdit
    Par Argonz dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/07/2004, 10h16

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