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 :

Query dans Query manque des colonnes [2008R2]


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
    Inscrit en
    Avril 2002
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 219
    Par défaut Query dans Query manque des colonnes
    Bonjour,

    Je cherche le problème depuis ce matin, et je ne comprend pas :
    J'ai une query
    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
     
    ALTER view [dbo].[qartcat]
    as
    SELECT     ART.AR_Ref AS Reference, ART.FA_CodeFamille AS codefamille, ART.AR_Design AS libelle, dbo.cd_ouinon(art.ar_sommeil) as sommeil,
                          ART.AR_PrixAch AS [Prix Achat], 
                          ART.AR_PrixVen AS [Prix Vente], isnull(AR1.AC_PrixVen,0) AS Cat1 
                          , isnull(AR2.AC_PrixVen,0) AS Cat2, isnull(AR3.AC_PrixVen,0) AS Cat3, 
                          isnull(AR4.AC_PrixVen,0) AS Cat4, 
    ....
    FROM         dbo.s_article AS ART  
        LEFT OUTER JOIN dbo.s_ARTCLIENT AS AR1 ON ART.AR_Ref = AR1.AR_Ref AND AR1.AC_Categorie = 1 
        LEFT OUTER JOIN dbo.s_ARTCLIENT AS AR2 ON ART.AR_Ref = AR2.AR_Ref AND AR2.AC_Categorie = 2 
    ....
     
    go
    Elle fonctionne très bien.
    J'ai une autre query
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ALTER view [dbo].[qartcatstock]
    as
    select art.* , sto.depot1
     
    from qartcat art 
    left join qartstock sto on art.reference = sto.reference and art.[Societe Sage] = sto.ste
    Qui fonctionnait !! très bien.

    J'ai ajouter dans la première query 4 nouvelles colonnes. J'ai fait le test la query renvoie bien les 4 nouvelles colonnes. Par contre la seconde n'affiche pas les 4 nouvelles colonnes.

    J'ai fait une tentative d'alter view pour la mettre à jour, idem
    J'ai rebooter le serveur (problème de cache), idem

    Je ne sais pas ou chercher pour avoir ces 4 nouvelles colonnes qui apparaissent de nouveau.

    Oui j'aurais pu tout mettre dans une query, mais en fait la première query est réutilisé dans plusieurs autre query.

    Merci pour votre aide

  2. #2
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2009
    Messages : 623
    Par défaut
    au lieu de mettre * liste toutes les colonnes.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 219
    Par défaut
    Bonsoir,

    Merci.
    Il existe une explication au problème, ou c'est un fait que quand on fait un query dans un query il faut mettre le nom des colonnes ?

  4. #4
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2009
    Messages : 623
    Par défaut
    Ça a fonctionné ? Je donnais cette information pour essayer de trouver une piste, je ne pensais pas que ca résoudrait le problème. Comme ca, je n'ai pas d'explication. La seule chose que je peux dire c'est que je n'utilise jamais "*" sauf pour les "count" et les "exists".

  5. #5
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    J'ai pu reproduire le phénomène.

    Soit T1, n'importe laquelle de mes tables j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE VIEW V_TEST AS SELECT * FROM T1
    GO
    CREATE VIEW V_TEST_1 AS SELECT * FROM V_TEST
    GO
    ALTER VIEW V_TEST AS SELECT *, 'TEST' AS 'CA' FROM T1
    GO
    SELECT * FROM V_TEST_1
    Avec ce code, la nouvelle colonne C1 ajoutée à la vue V_TEST ne se retrouve pas dans V_TEST_1. D'où l'utilité d'utilisé la clause WITH SCHEMABINDING lors de la création d'une vue empêchant ainsi l'objet référencé de voir sa structure modifiée. Cela permet d'être sûr que le contenu de V_TEST_1 est toujours correct même si cela est plus contraignant car cela implique de retirer le binding pour pouvoir modifier l'objet et de le remettre après.

    De plus, avec cette clause, l'utilisation de "*" est interdite. C'est une garantie supplémentaire je trouve.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 219
    Par défaut
    J'ai bien lu la réponse, et merci pour l'explication détaillée.

    Mais j'avais oublier de poster le message.

    Merci Beaucoup

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

Discussions similaires

  1. [VxiR2] Valeurs dans les intitulés des Colonnes
    Par patgabjoe dans le forum Deski
    Réponses: 4
    Dernier message: 07/10/2010, 14h08
  2. [MySQL] decalage dans les nom des colonnes avec les checkbox
    Par tortue_22 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/04/2009, 12h58
  3. pb impression état (manque des colonnes)
    Par fscli dans le forum Access
    Réponses: 6
    Dernier message: 12/06/2006, 14h51
  4. DBGrid, comment dessiner dans les titres des colonnes
    Par dleu dans le forum Bases de données
    Réponses: 9
    Dernier message: 04/11/2004, 17h49
  5. [dbGrid]Image dans le titre des colonnes d'un dbGrid
    Par dleu dans le forum Bases de données
    Réponses: 1
    Dernier message: 31/08/2004, 18h01

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