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 :

Ajouter la contrainte NOT NULL en utilisant ALTER TABLE


Sujet :

Développement SQL Server

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2009
    Messages : 14
    Par défaut Ajouter la contrainte NOT NULL en utilisant ALTER TABLE
    Bonjour,
    C'est cuit et recuit, mais je n'ai hélas trouvé aucune réponse à ma question, du moins pas sous MS SQL Server.
    Comment peut on ajouter la contrainte NOT NULL sur une colonne en utilisant ALTER TABLE.
    CREATE TABLE ne m'intéresse pas, il s'agit d'une modification.

    Je voulais créer tout d'abord mes tables sans contraintes, et ajouter les contraintes par la suite...
    Mais ça n'a pas l'air du tout simple.

    Bien sure tout ceci par transact SQL...

    Merci à l'avance

  2. #2
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Bonjour

    La commande ALTER TABLE permet de changer une contrainte de colonne acceptant NULL en NOT NULL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE dbo.test
    (
     columnTest VARCHAR(10)
    )
    GO
     
    ALTER TABLE dbo.test
    ALTER COLUMN columnTest VARCHAR(10) NOT NULL
    GO
    Cependant il faut savoir que vous aurez une erreur si votre table contient déjà des données et s'il existe une valeur à NULL de la colonne concernée.

    ++

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2009
    Messages : 14
    Par défaut
    Merci de ton aide, ça a fonctionné.
    Mais reste un problème que je n'ai pas spécifié plus haut, comment rentre NOT NULL ce même champs sans pour autant recopier les valeurs à l'intérieur?
    Du moins, est ce possible?

  4. #4
    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 : 43
    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
    Par défaut
    Bonjour,

    En utilisant la requête de MikeDavem, vous spécifiez seulement que votre colonne peut être NULL, vous n'avez pas besoin recopier les valeurs

    Si vous souhaitez vider la colonne de ses valeurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE dbo.maTable
    SET maColonne = NULL
    @++

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2009
    Messages : 14
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Bonjour,

    En utilisant la requête de MikeDavem, vous spécifiez seulement que votre colonne peut être NULL, vous n'avez pas besoin recopier les valeurs

    Si vous souhaitez vider la colonne de ses valeurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE dbo.maTable
    SET maColonne = NULL
    @++
    Ok, je vais coller ma tips dans mon classeur.
    En fait le but était d'abord de créer mes tables, sans les contraintes. Et c'est seulement après la création que je veux gérer les contraintes afin de les modifier à ma guise, et surtout au cas où je ferai un roll back, d'avoir des occurences "propres".

    Je vous remercie tous les deux.
    Passage en résolu.

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

Discussions similaires

  1. [AC-2007] ALTER TABLE _ ALTER COLUMN ==> enlever contrainter NOT NULL
    Par Christian78 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 24/10/2012, 22h56
  2. Alter table pour l'ajout de contrainte not null
    Par jean sami dans le forum SQL
    Réponses: 6
    Dernier message: 18/09/2008, 17h42
  3. [9i] Contrainte NOT NULL
    Par Ito dans le forum Administration
    Réponses: 20
    Dernier message: 11/07/2007, 13h13
  4. Ajouter une contrainte NOT NULL à une colonne
    Par abdelghani_k dans le forum Firebird
    Réponses: 1
    Dernier message: 03/06/2007, 16h26
  5. Ajouter la contrainte NOT NULL a une colone [Firebird 1.5]
    Par crocodingo dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/01/2004, 18h52

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