代码背景:
因现实工作中,需要对上万台服务器的版本进行差异化控制和了解。希望对大家有用
包括
1、服务器运行的环境
2、文件
3、权限
4、应用程序的数量
5、应用程序的个性化要求
6、数据库的数据一致性,包括存储过程、函数、视图、作业、业务逻辑等
说明:以下代码是一个简单的模型,有这种方式可以检查所有。
/*
-- 比较原理:trim 掉 过程代码的 两端空白后,计算md5特征值。比较 模块库 和 目标库的 md5值 判定代码是否唯一?
-- 从模版库上获取 MD5特征值:
-- 从 模块库上 执行
select a.name,a.modify_date,len(b.definition) as [length],database.dbo.MD5V2(rtrim(ltrim(b.definition))) as md5
from database.sys.objects a inner join database.sys.sql_modules b on a.object_id=b.object_id
where name='存储过程名称'
*/
--从 目标库上 执行
if exists (
select *
from database.sys.objects a inner join database.sys.sql_modules b on a.object_id=b.object_id
where a.name='pr_wpbyexcel'
and database.dbo.MD5V2(rtrim(ltrim(b.definition)))<>'703152acfb532c2c5cf525159e4b078a'
)
raiserror('err',14,1)