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 :

Ajout d'une colonne


Sujet :

MS SQL Server

  1. #1
    Membre habitué Avatar de Mathieu.Nanoux
    Étudiant
    Inscrit en
    Février 2004
    Messages
    166
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 166
    Points : 137
    Points
    137
    Par défaut Ajout d'une colonne
    Bonjour,

    j'aimerai pouvoir ajouter une colonne à une table en fonction du nom d'un champs.

    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
    declare @ActionID uniqueidentifier
    declare cSeg cursor dynamic
    for select ActionID from admAction where ProductIDfk = @ProductID
    open cSeg
    fetch next from cSeg into @ActionID
    while (@@fetch_status = 0)
    	begin
     
    		declare @NameAction varchar(50)
    		select Name = @NameAction from admAction where admAction.ActionID = @ActionID
     
    		alter table tmpReporting add @NameAction int
     
    	fetch next from ActionID into @ActionID
    	end
     
    close cSeg
    deallocate cSeg
    Mais j'ai cette erreur là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Incorrect syntax near '@NameAction'.
    Y-a-t'il moyen ?

    Merci.

  2. #2
    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
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Si c'est bien des colonnes d'actions que tu souhaites ajouter à la table tmpReporting, tu ne peux pas passer une variable directement à la commande ALTER TABLE, ce qui explique l'erreur que te donne le compilateur
    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
     
    DECLARE @ACTIONID UNIQUEIDENTIFIER
    DECLARE CSEG CURSOR DYNAMIC FOR
    	SELECT ACTIONID
    	FROM ADMACTION
    	WHERE PRODUCTIDFK = @PRODUCTID
     
    OPEN CSEG
    FETCH NEXT FROM CSEG INTO @ACTIONID
    WHILE @@FETCH_STATUS = 0
    	BEGIN		
    		DECLARE @NAMEACTION VARCHAR(50)
    		SELECT  = NAME FROM ADMACTION WHERE ADMACTION.ACTIONID = @ACTIONID
     
    		DECLARE @SQL VARCHAR(64)
    		SET @SQL = 'ALTER TABLE TMPREPORTING ADD ' + @NAMEACTION + 'INT'
     		EXEC (@SQL) -- Ajoute la colonne
    		PRINT @SQL -- Montre la commande exécutée
    		FETCH NEXT FROM ACTIONID INTO @ACTIONID
    	END
     
    CLOSE CSEG
    DEALLOCATE CSEG

Discussions similaires

  1. Ajout d'une colonne automatiquement suivant date
    Par paflolo dans le forum Access
    Réponses: 7
    Dernier message: 07/03/2006, 17h51
  2. [Access 97] Ajout d'une colonne selon la date...
    Par paflolo dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/03/2006, 16h50
  3. Réponses: 7
    Dernier message: 01/03/2006, 18h14
  4. pb d'ajout d'une colonne dans un report
    Par khlh dans le forum Oracle
    Réponses: 3
    Dernier message: 06/10/2005, 17h12
  5. Ajout d'une colonne dans une table ...
    Par Djedjeridoo dans le forum SQL
    Réponses: 2
    Dernier message: 22/07/2003, 16h12

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