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 :

Possibilité de récupérer valeur de Column_Name


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 193
    Points : 89
    Points
    89
    Par défaut Possibilité de récupérer valeur de Column_Name
    Salut à tous,
    Je voudrais dans une procédure stockée, récupéré le column_name et la valeur de la colonne d'une table parametre mais je n'y arrive pas du tout.

    Quand j'écris ceci, j'obtiens effectivement les différentes colonnes de ma table mais je veux récupérer la valeur de données qui est dans chaque colonne.
    Est ce possible et comment procéder?

    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
     
    USE [P2014]
    GO
    /****** Object:  StoredProcedure [COMPTABILITE].[PARAMETRE_COMPTABLE_COLNAME]    Script Date: 18/07/2013 18:38:17 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
     
    ALTER PROCEDURE [COMPTABILITE].[PARAMETRE_COMPTABLE_COLNAME]
      AS
     SET NOCOUNT ON
     
    SELECT COLUMN_NAME,VALUE_COLUMN
    FROM INFORMATION_SCHEMA.columns
    WHERE table_name = 'PARAMETRE_COMPTABLE'
    ORDER BY ORDINAL_POSITION

  2. #2
    Membre actif
    Avatar de SQL_EVAN
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2011
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 161
    Points : 245
    Points
    245
    Par défaut
    Salut,

    Voici une requête qui va te construire d'autres requêtes que tu pourras lancer afin d'avoir les résultats voulues.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT
    	'SELECT ' + COLUMN_NAME + ' AS VALUE_COLUMN, ''' + COLUMN_NAME + ''' AS COLUMN_NAME FROM PARAMETRE_COMPTABLE' 
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE table_name = 'PARAMETRE_COMPTABLE'
    ORDER BY ORDINAL_POSITION
    Tu peux envisager de les lancer automatiquement et mettre les résultats dans une table temporaire et puis faire un SELECT à la fin par exemple.
    "Toute technologie suffisamment avancée est indiscernable de la magie." - Arthur C. Clarke

    Evan Barke - Ingénieur d'Etudes et Développement SQL Server
    Blog SQL Server, T-SQL, SSIS, Administration www.transactivesql.com
    Twitter - TransactiveSQL
    N'oubliez pas les boutons et

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 193
    Points : 89
    Points
    89
    Par défaut
    Merci pour l'apport mais le résultat que j'obtiens n'est pas ce que j'envisage. Peut être je me suis mal libellé. Je m'explique. J'ai une table paramatre_comptable (ID_AUTO, Racine, Compte,CompteVente,CompteAchat) et dans cette table, il y a une ligne de données.
    ID_AUTO = 1
    Compte = 411
    Compte Vente = 701
    Compte Achat = 701

    Je veux récupérer et les nom des champs(ID_AUTO, Racine, Compte,CompteVente,CompteAchat) et la valeur de chaque présenté comme suit :

    Column_NAme Valeur
    ID_AUTO 1
    Compte 411
    Compte Vente 701
    Compte Achat 701

    à partir de ma SP.

    Merci de m'aider

  4. #4
    Membre actif
    Avatar de SQL_EVAN
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2011
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 161
    Points : 245
    Points
    245
    Par défaut
    Tu pourras toujours tourner ton écran 90° et lire les résultats comme ça

    Non mais sérieusement, les requêtes générées par la requête que je t'ai donnée vont normalement te retourner ce que tu cherche si tu les lance avec des UNION ALL entre chaque requête ou une à une.
    "Toute technologie suffisamment avancée est indiscernable de la magie." - Arthur C. Clarke

    Evan Barke - Ingénieur d'Etudes et Développement SQL Server
    Blog SQL Server, T-SQL, SSIS, Administration www.transactivesql.com
    Twitter - TransactiveSQL
    N'oubliez pas les boutons et

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 193
    Points : 89
    Points
    89
    Par défaut
    Je n'arrive toujours pas à obtenir la valeur de la colonne.
    Comme cette SP qui me renvoie, le nom de la colonne et son type, je veux récupérer le nom de la colonne et la valeur de donnée qu'il contient:
    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
     
    USE [P2014]
    GO
    /****** Object:  StoredProcedure [COMPTABILITE].[PARAMETRE_COMPTABLE_COLNAME]    Script Date: 19/07/2013 10:34:10 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
     
    ALTER PROCEDURE [COMPTABILITE].[PARAMETRE_COMPTABLE_COLNAME]
      AS
     SET NOCOUNT ON
     
     
    SELECT
    COLUMN_NAME  AS NOM, COLUMNS.DATA_TYPE as Type
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE table_name = 'PARAMETRE_COMPTABLE'
    ORDER BY ORDINAL_POSITION
    Veuillez m'aider si c'est faisable en sql server mais si ce n'est pas faisable, veuillez me le dire svp.

    Merci

  6. #6
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    Citation Envoyé par eddyphan Voir le message
    Merci pour l'apport mais le résultat que j'obtiens n'est pas ce que j'envisage. Peut être je me suis mal libellé. Je m'explique. J'ai une table paramatre_comptable (ID_AUTO, Racine, Compte,CompteVente,CompteAchat) et dans cette table, il y a une ligne de données.
    C'est problématique : pourquoi n'y aurait-t-il qu'une seule ligne de données dans une table ?

    Sinon, je vous invite à faire une recherche avec les termes PIVOT et SQL DYNAMIQUE.

  7. #7
    Membre actif
    Avatar de SQL_EVAN
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2011
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 161
    Points : 245
    Points
    245
    Par défaut
    Je suis d'accords, c'est un peu bizarre d'avoir une table n'ayant qu'un seul tuple mais bon. Voici le code qui va faire ce travail bizarre pour toi

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    SELECT
    	'INSERT INTO #Values SELECT TOP 1 ' + COLUMN_NAME + ' AS VALUE_COLUMN, ''' + COLUMN_NAME + ''' AS COLUMN_NAME FROM ' + table_name AS REQUETE,
    	0 AS Treated INTO #ColonnesATraiter
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE table_name = 'PARAMETRE_COMPTABLE'
    ORDER BY ORDINAL_POSITION
     
    DROP TABLE #ColonnesATraiter
     
     
    CREATE TABLE #Values (Valeur NVARCHAR(50), Nom NVARCHAR(50))
    DECLARE @Requete NVARCHAR(4000)
     
    WHILE EXISTS (SELECT
    	1
    FROM #ColonnesATraiter
    WHERE Treated = 0)
     
    BEGIN
    SELECT TOP 1
    	@Requete = REQUETE
    FROM #ColonnesATraiter
    WHERE Treated = 0
     
    EXEC sp_executeSQL @Requete
     
    UPDATE #ColonnesATraiter
    SET treated = 1
    WHERE REQUETE = @Requete
     
    END
     
    SELECT
    	Nom,
    	Valeur
    FROM #Values
    "Toute technologie suffisamment avancée est indiscernable de la magie." - Arthur C. Clarke

    Evan Barke - Ingénieur d'Etudes et Développement SQL Server
    Blog SQL Server, T-SQL, SSIS, Administration www.transactivesql.com
    Twitter - TransactiveSQL
    N'oubliez pas les boutons et

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 193
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par Rei Ichido Voir le message
    C'est problématique : pourquoi n'y aurait-t-il qu'une seule ligne de données dans une table ?

    Sinon, je vous invite à faire une recherche avec les termes PIVOT et SQL DYNAMIQUE.
    Merci pour l'aide. Au fait c'est parce que c'est une table paramètre que j'ai prévu une seule ligne de données.

  9. #9
    Membre actif
    Avatar de SQL_EVAN
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2011
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 161
    Points : 245
    Points
    245
    Par défaut
    Bonjour, j'aimerais savoir comment ça s'est passé pour l'intégration de ce script? Tu as pu faire ce que tu as voulu?
    "Toute technologie suffisamment avancée est indiscernable de la magie." - Arthur C. Clarke

    Evan Barke - Ingénieur d'Etudes et Développement SQL Server
    Blog SQL Server, T-SQL, SSIS, Administration www.transactivesql.com
    Twitter - TransactiveSQL
    N'oubliez pas les boutons et

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

Discussions similaires

  1. [POI]Récupérer valeur cellule suivant format
    Par leminipouce dans le forum Documents
    Réponses: 1
    Dernier message: 27/10/2005, 08h52
  2. Récupérer valeur contrôle en dynamique via requête
    Par nicburger dans le forum Access
    Réponses: 10
    Dernier message: 15/09/2005, 15h41
  3. [ActionScript] Récupérer valeur balise <param />
    Par JohnBlatt dans le forum Flash
    Réponses: 1
    Dernier message: 18/07/2005, 14h50
  4. CR9 - Récupérer valeurs multiples d'un champ paramètre
    Par CR9-Deb dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 06/07/2005, 16h08
  5. récupérer valeur d'un ID après insertion
    Par rikidi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/08/2003, 22h21

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