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

MS SQL Server Discussion :

MSSQL 2 K Rule et/ou contrainte


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Japon

    Informations forums :
    Inscription : Novembre 2007
    Messages : 125
    Par défaut MSSQL 2 K Rule et/ou contrainte
    Bonjour,
    j'ai un champ char(2).

    je voudrais limité les possibilité à deux letres (pas de caractere speciaux/chiffres)

    ou est til possible de limité avec des valeur qui se trouve sur une autre table qui se trouverai dans une querry ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT ParameterValue FROM dbo.CLIENT_PARAMETER_VALUE_LIST WHERE ParameterType = 'WWE'
    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
    22 002
    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 : 22 002
    Billets dans le blog
    6
    Par défaut
    Les deux sont valables....

    1) contrainte de table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE TABLE toto (Clef int not null PRIMARY KEY,
                       Macolonne VARCHAR(5));
     
    ALTER TABLE toto 
      ADD CONSTRAINT CK_2LT 
      CHECK (    SUBSTRING(Macolonne, 1, 1) BETWEEN 'A' AND 'Z' 
             AND SUBSTRING(Macolonne, 2, 1) BETWEEN 'A' AND 'Z');

    2) trigger et table (ici en ligne via UDF)

    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
    CREATE FUNCTION F_T_2LETTRES ()
    RETURNS TABLE 
    AS
    RETURN (WITH T (L)
            AS   (SELECT 'A' 
                  UNION ALL
                  SELECT 'B'
                  UNION ALL
                  SELECT 'C'
                  ...
                  UNION ALL
                  SELECT 'Z')
            SELECT T1.L + T2.L AS LETTRES_2
            FROM   T AS T1
                   CROSS JOIN T AS T2);
     
     
    CREATE TRIGGER E_2LT
    ON toto
    FOR INSERT, UPDATE
     
    AS
    IF EXISTS (SELECT *
               FROM   toto t
                      INNER JOIN  inserted i
                            ON t.clef = i.clef
               WHERE  t.Macolonne NOT IN (SELECT LETTRES_2 
                                          FROM dbo.F_T_2LETTRES ()))
       ROLLBACK;
    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/ * * * * *

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Japon

    Informations forums :
    Inscription : Novembre 2007
    Messages : 125
    Par défaut
    Bonjour,
    j'ai repris le concept du 1er exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ALTER TABLE ma table
      ADD CONSTRAINT CK_2LT 
    	------- list of limited value
      CHECK (   EntityId in ('BE','CH','CN','DE','ES','FR','GB','HK','IE',
    			'IT','LU','NL','NY','PL','PT','SG','TW','US'));
    merci

    mais pour le 2eme, ceci n'est pas un peu extreme??
    je voulais juste eviter les trigger !

    Bonne journée à tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Desactiver temporairement les contraintes
    Par maitrebn dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 05/10/2006, 17h58
  2. [ contrainte ] supprimer une contrainte DB2
    Par hocinema dans le forum DB2
    Réponses: 4
    Dernier message: 08/01/2004, 15h01
  3. connection a mssql a partir d'une page php
    Par jean_marc dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/11/2003, 14h24
  4. Suppression de la contrainte unique
    Par mika dans le forum SQL
    Réponses: 3
    Dernier message: 20/02/2003, 17h56
  5. [VB6] Affichage d'image avec qlq contraintes
    Par youri dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/11/2002, 14h44

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