ver salida resueltos procedimientos procedimiento parametros guardar entrada ejercicios ejemplo ejecutar devolver datos con como codigo almacenados almacenado sql-server stored-procedures migration

sql-server - salida - procedimiento almacenado sql server insert



¿Cómo puedo identificar rápidamente los procedimientos almacenados modificados más recientemente en SQL Server? (7)

Necesito migrar manualmente los procedimientos almacenados modificados de una instancia de base de datos DEV SQL Server 2005 a una instancia TEST. Excepto por los cambios que estoy migrando, las bases de datos tienen los mismos esquemas. ¿Cómo puedo identificar rápidamente qué procedimientos almacenados se han modificado en la base de datos DEV para la migración a la instancia TEST?

Supongo que puedo escribir una consulta en contra de algunas de las tablas del sistema para ver los objetos de la base de datos del tipo de procedimiento almacenado, clasificándolos por algún tipo de datos modificados o compilados por última vez, pero no estoy seguro. Tal vez haya algún tipo de utilidad gratuita a la que alguien pueda apuntarme.

Gracias por adelantado,

Chelín


Aunque no es gratuito, he tenido una buena experiencia al utilizar la herramienta Red-Gates SQL Compare . Me funcionó en el pasado. Tienen una versión de prueba gratuita disponible que puede ser lo suficientemente buena como para resolver su problema actual.


Hay varias herramientas de comparación de bases de datos disponibles. Uno que siempre me ha gustado es SQLCompare de Red Gate .

También puedes intentar usar:

SELECT name FROM sys.objects WHERE modify_date > @cutoffdate

En SQL 2000 eso no siempre habría funcionado, porque el uso de ALTER no actualizó la fecha correctamente, pero en 2005 creo que el problema está solucionado.

Aunque uso una herramienta de comparación de SQL, por lo que no puedo responder por ese método al 100%


Puede ejecutar esta consulta para buscar todos los procedimientos almacenados modificados en los últimos x días:

SELECT name FROM sys.objects WHERE type = ''P'' AND DATEDIFF(D,modify_date, GETDATE()) < X


Puede usar el siguiente tipo de consulta para encontrar procedimientos almacenados modificados, puede usar cualquier número luego 7 según sus necesidades

SELECT nombre FROM sys.objects WHERE type = ''P'' AND DATEDIFF (D, modify_date, GETDATE ()) <7


en lugar de utilizar sysobjects que ya no se recomienda, use sys.procedures

select name,create_date,modify_date from sys.procedures order by modify_date desc

usted puede hacer la cláusula where usted mismo, pero esto lo mostrará en orden de fecha de modificación descendente


también puedes usar el siguiente snipet de código

USE AdventureWorks2008; GO SELECT SprocName=name, create_date, modify_date FROM sys.objects WHERE type = ''P'' AND name = ''uspUpdateEmployeeHireInfo'' GO


Bob OMalley probablemente resolvió su problema hace mucho tiempo, pero esperamos que los nuevos lectores lo encuentren útil.

Hay algunos casos especiales donde los scripts pueden no dar resultados óptimos.

Una de ellas es eliminar los procedimientos almacenados u otros objetos en el entorno de desarrollo; no lo detectará usando las vistas del sistema porque el objeto ya no existirá.

Además, no estoy seguro de que este enfoque pueda funcionar en cambios como permisos y similares.

En tales casos, es mejor utilizar alguna herramienta de terceros solo para no verificar nada.

He utilizado ApexSQL Diff en el pasado para tareas similares y funcionó muy bien en bases de datos grandes con más de 1000 objetos, pero no se puede equivocar con SQL Compare que ya se mencionó aquí o básicamente cualquier otra herramienta que existe en el mercado.

Descargo de responsabilidad: no estoy afiliado a ninguno de los proveedores que menciono aquí, pero uso ambos conjuntos de herramientas (Apex y RG) en la empresa para la que trabajo.