Nota: no estoy preguntando sobre el control completo de la versión.
¿Hay alguna manera automática de mantener un historial de procedimientos almacenados en SQL Server?
Similar a cómo Google Docs mantiene automáticamente un historial de versiones de documentos y Wikipedia mantiene automáticamente un historial de versiones de artículos.
No quiero que los usuarios que actualicen los procedimientos almacenados también tengan que mantener un repositorio de procedimientos almacenados. Esto es demasiado trabajo y la gente no lo hará.
Espero que esto sea algo que pueda activar en SQL Server ...
(Y por procedimientos almacenados realmente me refiero a funciones, disparadores, etc. Básicamente todo en Programabilidad).
Publiqué en /programming/14522224/how-to-keep-history-of-sql-server-stored-procedure-revisions primero porque sospecho que obtendría más vistas allí.
Respuestas:
Si bien estoy totalmente de acuerdo en que el control de fuente es la forma correcta de hacer esto, también entiendo que no todos los entornos son lo suficientemente disciplinados como para depender solo de eso (si es que lo hacen), y que a veces los cambios deben realizarse directamente para mantener la aplicación corriendo, guardar un cliente, ¿qué tienes?
Puede usar un desencadenador DDL para mantener todas las revisiones en una tabla en una base de datos separada (y, por supuesto, hacer una copia de seguridad de esa base de datos con frecuencia). Suponiendo que tiene una base de datos de utilidades:
Ahora en su base de datos, primero tomemos lo que llamaremos "control inicial": la versión actual de los procedimientos almacenados:
Ahora para capturar los cambios posteriores, agregue un desencadenador DDL a la base de datos:
Con el tiempo, será fácil ver y comparar los cambios en los procedimientos, ver cómo se agregan nuevos procedimientos al sistema, ver cómo se eliminan los procedimientos y tener una buena idea de con quién hablar sobre cualquiera de estos eventos.
Más información aquí:
http://www.mssqltips.com/sqlservertip/2085/sql-server-ddl-triggers-to-track-all-database-changes/
fuente
No creo que haya ninguna manera de mantener automáticamente su Código fuente SQL bajo control de versiones. Me refiero a las herramientas nativas de SQL Server. Creo que podría terminar usando git o svn, pero la mejor solución para mí fue comprar el control de origen de Red Gate para mantener las bases de datos (y los procedimientos almacenados) bajo el control de versiones.
fuente