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 :

[SQL Server 2000] - Create table avec une variable


Sujet :

MS SQL Server

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9
    Points : 8
    Points
    8
    Par défaut [SQL Server 2000] - Create table avec une variable
    Bonjour,

    Est-il possible de créer une table en utilisant une variable pour définir les colonnes.
    En gros, mon nombre de colonne est variable et du coup je voudrais créer une table dont le nombre de colonne peut varier.

    voici le script ce sera ptet plus clair.
    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
     
    DROP TABLE #Recap
     
    DECLARE @MaxOc int
    DECLARE @Table nvarchar(256) 
    DECLARE @NbAgt int
     
    SET @Table = 'Agent_1 bigint' 
    SET @MaxOc = (SELECT MAX(Occ) FROM #Occur) - 1
    SET @NbAgt = 2
     
    WHILE @MaxOc <> 0 
    	BEGIN 
    	--ALTER TABLE #Recap ADD @Table
    	SET @Table = @Table + ', Agent_' + CAST(@NbAgt AS nvarchar(2)) + ' ' + 'Bigint'
    	SET @MaxOc = @MaxOc - 1
    	SET @NbAgt = @NbAgt + 1
    	END
     
    ----------création table
     
    CREATE TABLE #Recap (PTF_ID Bigint,@Table)
    Voila, si quelqu'un a une idée je suis preneur.

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    Tu peux soit faire du SQL dynamique (écrire ton CREATE TABLE dans une variable, et faire ensuite un EXEC(@mavariable), ou créer ta table et ensuite faire un ALTER TABLE #matable ADD macolonne ... chaque fois que tu veux ajouter une colonne. En terme de performances, si tu es dans une procédure stockée, note que la deuxième solutions produira certainement des recompilations.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Merci ça marche bien en utilisant une variable pour créer ma table.

    Nickel.

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

Discussions similaires

  1. nom de table avec une variable
    Par zeloutre dans le forum Access
    Réponses: 6
    Dernier message: 06/03/2007, 13h39
  2. Nommer une table avec une variable
    Par stephane9422 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/12/2005, 15h02
  3. [ms sql server 2000] top 1 dans une condition de jointure ?
    Par sylvkin dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 18/10/2005, 18h10
  4. [SQL Server 2000] configurer ou supprimer une connexion
    Par drinkmilk dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 08/08/2005, 22h48
  5. [Sql Server/MSDE][Create Table] limite int identity
    Par joefou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/06/2005, 10h45

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