Una vista es como una sola declaración de consulta guardada, no puede contener lógica compleja o varias instrucciones (más allá del uso de unión, etc.). Para cualquier cosa compleja o personalizable a través de los parámetros, elegiría procedimientos almacenados que permiten una flexibilidad mucho mayor.
Es común usar una combinación de vistas y procedimientos almacenados en una arquitectura de base de datos, y quizás por razones muy diferentes. A veces se trata de lograr compatibilidad con versiones anteriores en sprocs cuando el esquema se rediseña, a veces para hacer que los datos sean más manipulables en comparación con la forma en que se almacenan de forma nativa en tablas (vistas desnoralizadas).
El uso intensivo de Views puede degradar el rendimiento, ya que es más difícil para SQL Server optimizar estas consultas. Sin embargo, es posible usar vistas indizadas que realmente pueden mejorar el rendimiento cuando se trabaja con uniones de la misma manera que las tablas indexadas. Hay restricciones mucho más estrictas sobre la sintaxis permitida cuando se implementan vistas indexadas y muchas sutilezas para que realmente funcionen según la edición de SQL Server.
Piense en Vistas de ser más como tablas que los procedimientos almacenados.
Debe incluir las funciones definidas por el usuario en sus consideraciones. –
Parece un duplicado de este: [¿Cuáles son los pros y los contras de mantener SQL en los procesos almacenados en comparación con el código] (http://stackoverflow.com/questions/15142/what-are-the-pros-and-cons-to -mantener-sql-in-stored-procs-versus-code), que también es un Wiki de la comunidad. – Hibou57