|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Nouveau Membre du Club
![]() Inscription : juin 2009 Messages : 90 ![]() |
Bonjour à tous !
Je modifie une vue qui est sur un serveur SQL-Server 2005. Mais dès que je veux enregistrer la vue je me fais jeter comme une chaussette. Le message d'erreur : ![]() A la base je ne modifie qu'un seul bout de code présent à deux endroits de la requete : Code :
Code :
Code :
Si quelqu'un a une solution je suis preneur ! |
||||||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 665 ![]() |
Bonjour,
L'alias de table ou de vue PCH1 existe-t-il dans votre requête ? Et si oui, est-ce que la table ou la vue qu'il aliase existe ? Si oui, il faudrait que nous ayons le texte complet de la requête. @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
00
|
|
|
#3 | ||
|
Nouveau Membre du Club
![]() Inscription : juin 2009 Messages : 90 ![]() |
Alors pour répondre à tes questions "PCH1" est une table (pas d'alias). Je l'ai toujours utilisé de cette manière sans jamais avoir eu de souci.
Ce qui m'embête vraiment ce soit le fait que le problème vienne lors de la création de la vue. La requête est en deux partie où seul les jointures changent. Jointures qui fonctionnaient et fonctionnent toujours d'ailleurs. Voici ma requête qui est plutôt indigeste je l'avoue ! J'ai mis en rouge les deux passages où mon code plante : Code :
|
||
|
|
00
|
|
|
#4 |
![]() ![]() ![]() |
PCH1, est ce une table, une vue ou un alias ?
Je ne le retrouve pas dans le texte de ta requête. Je crois que c'est le même problème pour les autres champs.
__________________
Découvrez la FAQ de MS SQL Server. La chance accorde ses faveurs aux esprits avertis ! |
|
|
00
|
|
|
#5 | ||||
|
Nouveau Membre du Club
![]() Inscription : juin 2009 Messages : 90 ![]() |
Mes tables sont déclarés de cette façon :
Code :
En revanche pour les champs du style de "[Activity Name]," ce sont des champs provenant des vues sur lesquelles je fais des jointures. J'ai une question, le fait de parenthèser ou de trop parenthèser dans mes expression peut-il gêner ? Dans le sens où SQL-Serveur interprète le texte entre parenthèse comme des sous requêtes ? Je dis ça comme ça, juste pour être sur. PS : Je reprécise que la vue fonctionnait correctement à l'origine avec ce code ci : Code :
|
||||
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : juin 2009 Messages : 90 ![]() |
Je up car je n'ai pas trouvé de solution.
Je vais essayer de passer via une énième vue (ou requête imbriquée). |
|
|
01
|
|
|
#7 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour,
Tu sembles passer par l'interface graphique de création des vues (vu ta capture d'écran) Tu dis que ta requete fonctionne... As-tu essayé de créer ta vue directement avec un "CREATE VIEW"... ? |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() |
Si je ne m'abuse l'interface graphique de création de vue n'aime pas trop les unions et le fait savoir d'ailleurs?
|
|
|
00
|
|
|
#9 |
![]() ![]() ![]() |
Il n'est pas possible de faire une requete union avec le designer. Il fait l'écrire manuellement.
__________________
Découvrez la FAQ de MS SQL Server. La chance accorde ses faveurs aux esprits avertis ! |
|
|
00
|
|
|
#10 | ||||||||||
|
Nouveau Membre du Club
![]() Inscription : juin 2009 Messages : 90 ![]() |
Ah je n'avais pas vu vos messages, mais je viens tout juste de trouver la solution. Je vous la partage.
Resituons le problème j'avais une requête quasi identique à celle ci dessous. La vue (que j'appelle Racine) s'appuye sur plusieurs autres vues (que j'appelle Branche). Code :
Lorsque je l'insère dans l'interface graphique pour modifier ma vue existante ça plante ! Le message est le suivant : Le message d'erreur : ![]() L'interface graphique de création de vue me rejette uniquement aux endroits om j'utilise des CASE. La source du problème venait bien du UNION mais pas pour les raisons que vous imaginiez. Voici ma compréhension du problème : Ma requête se décompose en deux sous requêtes. Dans ce cas là, Requête 1 et Requête 2 appelle les même tables, vues et champs. Soit je place ma nouvelle requête dans l'interface et celle ci la "traite". C'est à dire qu'elle réécrit la syntaxe comme ça l'arrange (enfin c'est ce que je crois comprendre et c'est ce que je n'avais pas remarqué jusqu'à lors) L'interface retraite ma requête entière. Pas de problème elle se rend compte de l'union. Elle décide de mettre en place des alias << _1 >> pour bien distinguer les requêtes l'une de l'autre : Code :
Le code de départ : Code :
Code :
Le code qu'il fallait (le retraitement du traitement) : Code :
En tout cas merci à tous ceux qui ont posté et qui m'ont aidé. |
||||||||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com