我们的项目在开发后期、或给用户升级系统时经常会碰到这样的问题:开发人员在修改数据库字段长度、更改数据库字段类型、添加主键等更改时 技术人员并没有把对数据库的操作及时、全面的记录下来。这样导致的后果是 实施人员在更新完系统后遗漏了对数据库某些更改,使系统报错。
以下脚本是自动比较该数据库两个版本之间存在的差异,并显示出来,该脚本适用与SQLSERVER 数据库。
例:比较当前库与服务器 192.168.1.1上库 aeronavy之间差异
if exists(select * from master..sysservers where srvname='192.168.1.1')
begin
EXEC sp_dropserver '192.168.1.1', 'droplogins'
end
--建立连接服务器
EXEC sp_addlinkedserver
--要创建的链接服务器名称
--这里就用数据源作名称
'192.168.1.1',
'SQL Server'
--创建链接服务器上远程登录之间的映射
EXEC sp_addlinkedsrvlogin
'192.168.1.1',
'false',
NULL,
--远程服务器的登陆用户名
'sa',
--远程服务器的登陆密码
'sa'
-------
--查询出俩库之间不同的表
select '新加表' as 操作, t.*
from
(select b.name as 表名,a.name as 列名,a.column_id,a.max_length,a.system_type_id,a.collation_name
from sys.all_columns as a,sys.all_objects as b
where a.object_id=b.object_id and b.type=&