Une vue est comme une seule déclaration de requête enregistrée, elle ne peut pas contenir de logique complexe ou de déclarations multiples (au-delà de l'utilisation de l'union, etc.). Pour tout ce qui est complexe ou personnalisable via des paramètres, il faut choisir des procédures stockées, qui offrent une bien plus grande flexibilité.
Il est courant d'utiliser une combinaison de vues et de procédures stockées dans une architecture de base de données, et ce pour des raisons peut-être très différentes. Parfois, il s'agit d'assurer une compatibilité ascendante dans les sprocs lorsque le schéma est remanié, parfois de rendre les données plus manipulables par rapport à la façon dont elles sont stockées nativement dans les tables (vues dé-normalisées).
Une utilisation intensive des vues peut dégrader les performances car il est plus difficile pour SQL Server d'optimiser ces requêtes. Cependant, il est possible d'utiliser des vues indexées qui peuvent réellement améliorer les performances en travaillant avec des jointures de la même manière que les tables indexées. Il existe des restrictions beaucoup plus strictes sur la syntaxe autorisée lors de l'implémentation des vues indexées et beaucoup de subtilités pour les faire fonctionner en fonction de l'édition de SQL Server.
Les vues s'apparentent davantage à des tableaux qu'à des procédures stockées.
7 votes
Vous devez inclure les fonctions définies par l'utilisateur dans vos réflexions.
0 votes
Il semble que ce soit un doublon de celui-ci : Quels sont les avantages et les inconvénients de conserver le SQL dans les procédures stockées par rapport au code ? qui est également un wiki communautaire.