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 :

[SQL2005] CREATE DOMAIN


Sujet :

MS SQL Server

  1. #1
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut [SQL2005] CREATE DOMAIN
    Bonjour, j'ai trouvé dans http://sqlpro.developpez.com/cours/gestiontemps/#L6
    la commande CREATE DOMAIN. Or, quand je lance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE DOMAIN D_PLN_ANNEE SMALLINT
    CONSTRAINT CKD_ANNEE CHECK (VALUE BETWEEN 1 AND 9999)
    j'ai droit à
    Msg 102, Level 15, State 1, Line 2
    Incorrect syntax near 'DOMAIN'.
    Quel est le problème ?

  2. #2
    Membre confirmé Avatar de MetalGeek
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 412
    Points : 513
    Points
    513
    Par défaut
    Salut,

    je veux pas dire de conneries, mais je viens de chercher sur MSDN et je ne trouve pas trace de cette commande. Tu es sûr que c'est du SQL standard, pas une extension genre PL-SQL ou autre ?

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut
    CREATE DOMAIN est du sql standard. Sur sql serveur 2005, vous pouvez utiliser CREATE TYPE pour définir un nom d'alias. Pour aller plus loin, vous pouvez créer un type à l'aide du CLR.

  4. #4
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut
    Je ne trouve pas comment mettre la contrainte check dans un create table (je n'utilise pas le CLR)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE TYPE D_PLN_ANNEE
    	FROM SMALLINT
    	CHECK (VALUE BETWEEN 1 AND 9999)

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut
    j'ai bien peur qu'un domain soit une commande plus puissante que create type. il vous reste la possibilité de créer une contrainte check sur la colonne mais ce n'est pas idéal, j'en conviens.

    En bonus, tu as le droit à la valeur NULL ou NOT NULL avec CREATE TYPE.

  6. #6
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut
    ok, dommage ^^

    Merci 8o)

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 865
    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 865
    Points : 53 021
    Points
    53 021
    Billets dans le blog
    6
    Par défaut
    Vous pouvez utiliser :
    1) CREATE RULE : création de contraintes in abstracto
    2) CREATE DEFAULT : création de valeur par défaut in abstracto
    et lier ceci au type par :
    sp_bindrule
    sp_bindefault

    A +

  8. #8
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut
    Je m'étais finalement résolu à utiliser la version sans create domain, mais avec des contraintes de table (en l'adaptant, car certaines contraintes portaient le même nom, ce qui posait problème)

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut
    Le CREATE TYPE de Sql Pro présente quand même certains avantages. Une plus grande lisibilité de ta base de données. Un risque absent d'incohérence entre tes différentes occurences puisqu'ils sont sur le même modèle.

    j'avais écrit un article sur adventures works qui utilise cette technologie.

    http://blog.developpez.com/ylarvor?t...de_ad#more6420

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

Discussions similaires

  1. probleme avec CREATE DOMAIN
    Par hmhm12 dans le forum SQL
    Réponses: 0
    Dernier message: 05/03/2008, 00h50
  2. Create Domain [Mysql]
    Par MaitrePylos dans le forum Langage SQL
    Réponses: 4
    Dernier message: 29/06/2007, 12h33
  3. Create Domain exite-elle en MySQL?
    Par guiga dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 14/03/2007, 11h59
  4. Create domain
    Par Ryan Sheckler dans le forum Requêtes
    Réponses: 4
    Dernier message: 21/12/2005, 11h54
  5. Problème de contrainte dans un "CREATE DOMAIN ..."
    Par VenusX117 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 15/02/2005, 18h06

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