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 :

Supprimer une colonne avec valeurs par défaut


Sujet :

MS SQL Server

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Supprimer une colonne avec valeurs par défaut
    Bonjour !
    J'ai une table avec une colonne ayant une valeur par défaut
    SQL Server crée donc une contrainte de valeur par défaut pour cette colonne, avec un nom de contrainte que je ne connais pas
    Plus tard, j'ai besoin de supprimer cette colonne avec un ALTER TABLE DROP COLUMN, mais je ne peux pas parce que la contrainte dépend de la colonne.
    Je voudrais bien dropper cette contrainte, mais je ne connais pas son nom...
    comment puis-je faire ?

    Je sais que je peux passer par sysobjects pour connaître le nom de la contrainte, mais le problème est qu'il est possible qu'un utilisateur qui n'a pas accès à sysobjects veuille supprimer la fameuse colonne en question

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    Bonjour,

    sous SQL2K :

    Le morceau de code ci-dessous te permet de connaitre les contraintes de type 'Valeur par défaut' existantes. Il te suffira de mettre le nom de ta table et la colonne pour trouver le nom de la contraite.

    Sache néanmoins que tu peux toi-même doonner le nom des contraites lors de la création de la table

    Code pour touver les contriantes type default
    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
     
    select	db_name()				as CONSTRAINT_CATALOG
    	,t_obj.name 				as TABLE_NAME
    	,user_name(c_obj.uid)			as CONSTRAINT_SCHEMA
    	,c_obj.name				as CONSTRAINT_NAME
    	,col.name				as COLUMN_NAME
    	,col.colid				as ORDINAL_POSITION
    	,com.text				as DEFAULT_CLAUSE
     
    from	sysobjects	c_obj
    join 	syscomments	com on 	c_obj.id = com.id
    join 	sysobjects	t_obj on c_obj.parent_obj = t_obj.id  
    join    sysconstraints con on c_obj.id	= con.constid
    join 	syscolumns	col on t_obj.id = col.id
    			and con.colid = col.colid
    where
    	c_obj.uid	= user_id()
    	and c_obj.xtype	= 'D'
                 and col.name = 'la colonne'
                 and t_obj.name = 'la table'
    creation de table et nommer les noms des contraintes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    create table toto (
    val int CONSTRAINT FORUM_DEVELOPPEUR  default(0),
     val2 varchar(30) null
    )

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/12/2012, 00h48
  2. Réponses: 1
    Dernier message: 11/07/2010, 13h34
  3. Record avec valeur par défaut
    Par Sancha dans le forum Langage
    Réponses: 30
    Dernier message: 16/12/2009, 12h09
  4. Réponses: 4
    Dernier message: 01/11/2008, 09h41
  5. Réponses: 0
    Dernier message: 26/07/2007, 15h22

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