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 :

Nom de la colonne dans une fonction


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2006
    Messages : 154
    Par défaut Nom de la colonne dans une fonction
    Bonjour à tous

    J'ai des colonnes calculées qui appellent une fonction par exemple fonct1()
    J'aimerais connaitre dans la fonction fonct1(), le nom de la colonne qui est à l'origine de l'appel de cette fonction. comment puis-je faire?

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Un exemple de semantique mon cher ami.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  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 CAMIC Voir le message
    Bonjour à tous

    J'ai des colonnes calculées qui appellent une fonction par exemple fonct1()
    J'aimerais connaitre dans la fonction fonct1(), le nom de la colonne qui est à l'origine de l'appel de cette fonction. comment puis-je faire?

    Merci d'avance
    De façon automatique*, c'est impossible.

    Quel est votre objectif ?

    EDIT: * Sauf si vous vous lancez dans l'analyse des requêtes du processus en cours via les tables systèmes sys.dm_exec_sessions, etc. (mais ce serait un peu fou).

  4. #4
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    Le mieux serait de transformer la fonction en fcont1(valeur, nomDeColonne).

  5. #5
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2006
    Messages : 154
    Par défaut en attendant ...
    Pour le moment, j'ai rajouté suite à mon post un index qui est différent pour chaque colonne afin de faire des tests sur des valeurs entières qui est plus efficace que par comparaison de chaine de caractère comme proposé ci-dessous par idRei Ichido.

    Ce qui donne du point de vue "sémantique" n'est-ce pas WOLO Laurent!

    Pour la fonction :

    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
     
    CREATE FUNCTION [dbo].[IncMinExcMaxIntervaleFloat]
    (
    	@columnId tinyInt,
    	@min float,
    	@max float
    )
    RETURNS varchar(max)
    AS
    BEGIN
        ...
        IF (@columnId = 100) 
            ...
        ELSE IF (@columnId = 101)
            ...
        ...
     
        RETURN ...
    END
    Pour l'utilisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        SELECT
            dbo.IncMinExcMaxIntervaleFloat(100, min1, max1) AS [exp1],
            dbo.IncMinExcMaxIntervaleFloat(101, min2, max2) AS [exp2],
            dbo.IncMinExcMaxIntervaleFloat(102, min3, max3) AS [exp3]
        FROM ....
    J'ai fais cela pour un programme qui ne servira que quelques fois.

    Il est clair que pour une application efficace, il faudrait mieux une fonction par colonne afin de ne pas avoir de test à faire.

    Si quelqu'un à la réponse à ma question, je suis toujours preneur.

Discussions similaires

  1. Nom de form dynamique dans une fonction javascript
    Par voyageurdumonde dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/01/2013, 19h48
  2. Récupération du nom de colonne dans une requête
    Par Devlop++ dans le forum Access
    Réponses: 4
    Dernier message: 27/07/2007, 17h48
  3. nom de colonne dans une variable
    Par cyclone_yas dans le forum SQL
    Réponses: 12
    Dernier message: 27/12/2006, 11h41
  4. Modification nom colonne dans une table
    Par Mvu dans le forum Langage SQL
    Réponses: 1
    Dernier message: 16/06/2006, 11h38
  5. Noms de colonne dans une colonne
    Par Digirom dans le forum Langage SQL
    Réponses: 14
    Dernier message: 23/04/2004, 12h51

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