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 :

Nom des tables restituées


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 122
    Points : 124
    Points
    124
    Par défaut Nom des tables restituées
    Bonjour,

    J'ai un petit souci de personnalisation:

    Je travaille avec C# et sql serveur. Je veux lire plusieurs tables à partir d'une meme procédure stockée. Jusque là, pas de problème.
    Lorsque je lis met tables, j'utilise un DataAdapter. Le souci que je rencontre est que je dois faire un mapping entre le nom de la table donné par le SGBD, et le nom de ma table dans mon application (DataSet). Pour cela, j'utilise la propriété TableMappings:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    adapter.TableMappings.Add("maTableSql", "maTableCode");
    Or, je ne peux pas utiliser "maTableSql": le SGDB me génère soit le nom de la table dont sont issues les données (si je fais un select * from toto, j'obtiendrais toto comme nom), soit un nom et un numéro incrémental: TableN.

    Existe-t-il un moyen de personaliser ce nom?

    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,

    Une requête ne donne jamais le nom d'une table, et comme je ne connais rien à .NET, je ne vais pas pouvoir vous aider un peu plus ...

    Néanmoins, vous pouvez aliaser le nom de vos tables dans vos requêtes en les faisant suivre par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FROM dbo.maTable AS monAlias
    @++

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 122
    Points : 124
    Points
    124
    Par défaut
    Merci pour ta réponse, mais je ne pense pas que l'aliasage n'est pas la solution:
    quid quand il y a plusieurs tables dans la requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Select * FROM table1 AS Mon1erAlias
    CROSS JOIN table2 AS Mon2ndAlias
    Merci

  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
    Points : 12 371
    Points
    12 371
    Par défaut
    Comme je vous l'ai dit, une requête ne donne jamais le nom d'une table.
    Quand vous avez plusieurs tables, vous pouvez faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT *
    FROM
    (
    	SELECT *
    	FROM table1 AS Mon1erAlias
    	CROSS JOIN table2 AS Mon2ndAlias
    ) AS monAliasFinal
    Mais je ne suis clairement pas sûr que ce soit la meilleure solution ...

    @++

  5. #5
    Expert éminent sénior
    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 : 45
    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
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonjour,

    Une autre solution est du côté C# en mappant vos tables avec des noms personnalisés :

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SqlDataAdapter adapter = new SqlDataAdapter(
          "SELECT column1,column2 FROM tableSQL1; SELECT * FROM tableSQL2", connection);
    adapter.TableMappings.Add("Table", "maTableCode");
    adapter.TableMappings.Add("Table1", "maTableCode2");
     
    adapter.Fill(ds);
    Enfin je ne sais pas si ce que vous cherchez .... peut etre que oui

    ++

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/06/2005, 17h56
  2. [ADO] Nom des tables incomplet.
    Par CLP dans le forum XMLRAD
    Réponses: 1
    Dernier message: 07/06/2005, 09h23
  3. Réponses: 2
    Dernier message: 03/02/2005, 13h21
  4. Afficher noms des tables d'une base
    Par jeff37 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/01/2004, 16h00
  5. noms des tables d'une base
    Par molto dans le forum SQL
    Réponses: 2
    Dernier message: 17/03/2003, 22h14

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