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 :

fonction qui renvoie une table


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Par défaut fonction qui renvoie une table
    salut à tous
    on me demande de crier une fonction qui renvoie une table de circuit d'une ville dont le nom est transmis en paramètre
    Moi j’écris la fonction ci_dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    create function renvoi_table(@nom sysname) returns table
    as
    return(select * from circuit as a join ville as b on a.code_ville=b.code_ville where b.nom_ville=@nom)
    mais ça donne une erreur comme ceci

    Dans chaque vue, les noms de colonnes ou de fonctions doivent être uniques. Le nom de colonne 'code_ville' est spécifié plusieurs fois dans la vue ou la fonction 'renvoi_table'.
    mais quand je spécifie les colonnes au lieu de * ça fonctionne
    pourriez vous m'indiquer là ou existe l'erreur s'il vous plait ^^ ?

  2. #2
    Membre expérimenté
    Inscrit en
    Janvier 2012
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 145
    Par défaut
    Le SELECT * est difficile à relire, source d'erreurs et ne devrais être utilisé que lors du développement (cf la guerre des étoiles). En l’occurrence, le champ code_ville est présent dans les deux tables et se retrouve à deux reprises dans la sortie.

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Par défaut
    Citation Envoyé par ibnas Voir le message
    salut à tous
    on me demande de crier une fonction qui renvoie une table de circuit d'une ville dont le nom est transmis en paramètre
    Moi j’écris la fonction ci_dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    create function renvoi_table(@nom sysname) returns table
    as
    return(select * from circuit as a join ville as b on a.code_ville=b.code_ville where b.nom_ville=@nom)
    mais ça donne une erreur comme ceci



    mais quand je spécifie les colonnes au lieu de * ça fonctionne
    pourriez vous m'indiquer là ou existe l'erreur s'il vous plait ^^ ?
    SQL Server doit vous permettre de différencier les colonnes. C'est pour ça qu'il vous interdit d'avoir les même noms ailleurs que dans le résultat final d'une requête (et une fonction table comme une vue est un "résultat intermédiaire").

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 22/01/2014, 19h30
  2. Ecrire une fonction qui renvoie une structure de données (type)
    Par dinosaure dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/09/2008, 20h59
  3. Fonction qui renvoi une structure (requette)
    Par mael94420 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 05/07/2007, 13h43
  4. Fonction qui renvoie une liste
    Par la_praline dans le forum GTK+ avec C & C++
    Réponses: 20
    Dernier message: 20/04/2007, 21h22
  5. [?] Fonction qui renvoie une table
    Par Dimitri_87 dans le forum Oracle
    Réponses: 2
    Dernier message: 05/04/2007, 11h48

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