Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/01/2011, 11h51   #1
Nouveau Membre du Club
 
Avatar de bbo1991
 
Inscription : novembre 2006
Messages : 100
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : novembre 2006
Messages : 100
Points : 25
Points : 25
Par défaut Création et maintenance de plusieurs vues

Hello,

J'ai besoin de créer et de maintenir une multitude de vues. La définition de ces dernières dépendra d'une table de correspondance.

Exemple :
- la vue V_DEPTA sera créée avec un filtre WHERE DEPT='7'
- la vue V_DEPTB sera créée avec un filtre WHERE DEPT='9'
- la vue V_DEPTC sera créée avec un filtre WHERE DEPT in ('2' ,'5')
etc..

La table de correspondance contient les correspondances du type:
Bloc- Dept
A - 7
B - 9
C - 2
C - 5

Mes vues doivent donc être créées et maintenus en fonction de cette table de correspondance, cette dernière étant assez conséquente j'envisage mal de créer mes views à la main.

Est-ce qu'on peut les créer via une T-SQL simple ?
bbo1991 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 12h09   #2
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Bonjour,

Quand vous dites "maintenue", vous voulez qu'a chaque ajout/modification dans votre table, les vues soient automatiquement créées/modifiées ?

Vous pourriez générer dynamiquement vos ordre de creation de vue, puis les exécuter, mais la démarche me parait très étrange, et les performances seront catastrophiques !

1/ Pourquoi voulez vous faire cela ?
2/ Que comptez vous faire de ces vues ?
3/ comptez vous les indexer ?
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 13h21   #3
Nouveau Membre du Club
 
Avatar de bbo1991
 
Inscription : novembre 2006
Messages : 100
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : novembre 2006
Messages : 100
Points : 25
Points : 25
Oui maintenir pour moi c'est du type si je rajoute une entrée :
Bloc-Dept
X- 5

alors une nouvelle vue V_DEPTX sera créée avec le filtre sur Dept = 5.
Pareil pour les modifications et suppressions dans la table de correspondance.

Mais pas de panique la fréquences de mise à jour de cette table est très très faible. Donc la procédure de création et de mmise à jour des vues se fera de manière exceptionnelle.

Pour le pourquoi : il s'agit de restreindre les lignes retournées par une table en fonction du contexte de la requête. Il y a une couche supérieure qui choisit la vue optimale à utiliser en fonction de la situation.

Je cherche donc moyen de créer rapidement ces vues par procédure stockée, sinon un petit programme maison le fera aussi bien mais je préfère la solution full SQL Server si possible.
bbo1991 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 13h35   #4
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Citation:
Envoyé par bbo1991 Voir le message
Pour le pourquoi : il s'agit de restreindre les lignes retournées par une table en fonction du contexte de la requête.
La clause WHERE fait cela très bien !


Citation:
Il y a une couche supérieure qui choisit la vue optimale à utiliser en fonction de la situation.
SQL server a cela aussi.
pour chaque requete, il commence par chercher la façon la plus rapide de répondre. Et je mettrai ma main a couper que ca sera plus optimisé que votre surcouche aussi bien pensée et développée soit-elle.


Pour votre requete, faites simplement une jointure sur votre table de correspondance !
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h42.


 
 
 
 
Partenaires

Hébergement Web