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 :

Concaténer pour former le nom de la table


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Webmaster
    Inscrit en
    Décembre 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2017
    Messages : 34
    Par défaut Concaténer pour former le nom de la table
    Bonjour,

    comment faire la concaténation de deux variables pour former le nom d'une table sous transact sql?

    Merci d'avance.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut
    Avec + ou CONCAT

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre averti
    Femme Profil pro
    Webmaster
    Inscrit en
    Décembre 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2017
    Messages : 34
    Par défaut
    Pouvez vous me dire qu'est ce qui ne marche pas dans ma requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     select * from (select concat('TPaie',2017) )

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 633
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 633
    Billets dans le blog
    10
    Par défaut
    Pour ce genre de besoin, vous ne pouvez pas utiliser CONCAT, il faut utiliser du SQL DYNAMIQUE


    Cf. http://sheikyerbouti.developpez.com/execute_immediate/

  5. #5
    Membre averti
    Femme Profil pro
    Webmaster
    Inscrit en
    Décembre 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2017
    Messages : 34
    Par défaut
    Voila le code que j'utilise ,j'aimerai savoir comment je peux affecter le résultat qui s'affiche par print dans une variable pour l'utiliser comme nom d'une table .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    declare @vartp nvarchar(6)
    declare @varann nvarchar(4)
    declare @res nvarchar(10)
    set @vartp='TPaie'
    set @varann='2017'
    set @res=@vartp+@varann
    print(@res)

  6. #6
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Billets dans le blog
    8
    Par défaut
    Bonjour,

    Pour cela il te faudra, comme cela a été évoqué ci-dessus par escartefigue, utiliser le "SQL Dynamique"
    Le lien indiqué ci-dessous traite du sujet mais les exemples utilisent principalement la syntaxe ORACLE.
    Ici, nous somme sur le forum SQL Server. Pour SQL Server, il te faudra utiliser la procédure système sp_executesql.
    Tu devras écrire quelque chose comme ceci :

    Code 'SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    declare @vartp nvarchar(6)
    declare @varann nvarchar(4)
    declare @res nvarchar(10)
    declare @sqlStmt nvarchar(max);            --  nouvelle ligbe (nouvelle variable à déclarer) 
    set @vartp='TPaie'
    set @varann='2017'
    set @res=@vartp+@varann
    print(@res)
    set @sqlStmt = N'SELECT * FROM dbo.'+@res; -- nouvelle ligne 
    EXECUTE sp_executesql @SqlStmt;            -- nouvelle ligne

    A+

Discussions similaires

  1. [AC-2003] concatenat pour composer le nom d'une table
    Par abdelillah00 dans le forum Access
    Réponses: 4
    Dernier message: 12/03/2017, 15h00
  2. Utilisation d'un tContextLoad pour paramétrer le nom de ma table cible ?
    Par Mailgifson dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 02/07/2015, 01h44
  3. Concaténation pour former variable
    Par masseur dans le forum Langage
    Réponses: 2
    Dernier message: 21/07/2008, 16h26
  4. Concaténer une chaine et un nombre pour former un nom de variable ?
    Par debie1108 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 30/04/2007, 07h38
  5. Concaténation de deux integer pour former une clé primaire
    Par stoukou dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 08/09/2005, 10h34

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