我需要手动将修改后的存储过程从DEV SQL Server 2005数据库实例迁移到TEST实例.除了我正在迁移的更改之外,数据库具有相同的模式.如何快速识别DEV数据库中已修改哪些存储过程以迁移到TEST实例?
我假设我可以针对某些系统表编写查询来查看类型存储过程的数据库对象,通过某种最后修改或编译的数据进行排序,但我不确定.也许有人可以指出我的某种免费实用程序.
提前致谢,
短发
而不是使用不建议使用的sysobjects使用sys.procedures
select name,create_date,modify_date from sys.procedures order by modify_date desc
您可以自己执行where子句,但这将按修改日期降序的顺序列出
Bob OMalley很久以前就解决了他的问题,但希望新读者会觉得这很有用.
在某些特殊情况下,脚本可能无法提供最佳结果.
一种是在开发环境中删除存储过程或其他对象 - 您不会使用系统视图捕获它,因为对象将不再存在.
此外,我不确定这种方法是否适用于权限和类似的更改.
在这种情况下,最好使用一些第三方工具,只是为了仔细检查没有错过.
我过去成功地使用了ApexSQL Diff来完成类似的任务,并且它在具有1000多个对象的大型数据库上工作得非常好,但是你不能错过这里已经提到过的SQL Compare或基本上市场上存在的任何其他工具.
免责声明:我不隶属于我在这里提到的任何供应商,但我在我工作的公司中使用这两套工具(Apex和RG).
您可以执行此查询以查找在过去x天内修改的所有存储过程:
SELECT name FROM sys.objects WHERE type = 'P' AND DATEDIFF(D,modify_date, GETDATE()) < X