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 :

comment rendre une colonne d'une table temporaire nullabe ?


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2004
    Messages
    417
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Par défaut comment rendre une colonne d'une table temporaire nullabe ?
    Bonjour,
    Lorsque je crée une table temporaire comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    create table tt(val int)
    --select val, getdate() as ColDate into #temp from tt
    select val, convert(datetime, null) as ColDate into #temp from tt
    insert into #temp values (2, null)
    select * from #temp
    drop table tt
    drop table #temp
    La colonne ColDate de #temp accepte les null.
    Par contre si j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    create table tt(val int)
    select val, getdate() as ColDate into #temp from tt
    --select val, convert(datetime, null) as ColDate into #temp from tt
    insert into #temp values (2, null)
    select * from #temp
    drop table tt
    drop table #temp
    J'ai le message d'erreur qui me dit que ColDate n'accepte pas les valeurs null.
    Je comprends bien cela, cependant je voulais savoir s'il y avait un moyen, dans l'idéal au moment de la création de #temp, ou alors après, de rendre la colonne nullable ? Est-ce que je peux faire un alter sur une table temporaire par exemple ?
    Je sais qu'un moyen serait de créer la structure de #temp avant, mais pour divers raisons je voudrais une solution d'un autre type.
    D'avance merci,
    Julien

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour,

    vous pouvez transtyper explicitement GETDATE() en... DATETIME.

    Ainsi le moteur la considérera comme potentiellement nullable, et la colonne correspondante de votre table temporaire sera nullable également.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE TABLE tt(val int)
    SELECT val, CAST(getdate() AS DATETIME) AS ColDate INTO #temp from tt
    --select val, convert(datetime, null) as ColDate into #temp from tt
    INSERT INTO #temp values (2, null)
    SELECT * FROM #temp
    DROP TABLE tt
    DROP TABLE #temp

Discussions similaires

  1. Comment rendre les colonnes d'une Table de même longueur avec LWUIT ?
    Par andrianiaina dans le forum Développement Mobile en Java
    Réponses: 0
    Dernier message: 25/05/2011, 07h35
  2. Comment faire un "remplacer" dans une colonne d'une table ?
    Par arnaudperfect dans le forum Requêtes
    Réponses: 7
    Dernier message: 22/02/2008, 12h32
  3. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  4. Réponses: 2
    Dernier message: 15/05/2007, 10h34
  5. [C#][Débutant] Comment récuperer la valeur d'une colonne d'une grille
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 2
    Dernier message: 30/04/2006, 05h40

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