sql server编写通用脚本自动检查两个不同服务器的新旧数据库的表结构差异-will.miao
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> ADP及SQL SERVER


sql server编写通用脚本自动检查两个不同服务器的新旧数据库的表结构差异

发表时间:2019/7/19 8:52:20 评论(0) 浏览(3553)  评论 | 加入收藏 | 复制
   
摘 要:工作过程中,不管是什么项目,伴随着项目不断升级版本,对应的项目数据库业务版本也不断升级,数据库出现新增表、修改表、删除表、新增字段、修改字段、删除字段等变化,如果人工检查,数据库表和字段比较多的话,工作量就非常大。
正 文:
-- sysobjects插入临时表
select s.name + '.' + t.name as TableName, t.* into #tempTA 
from DB_V1.sys.tables t
inner join DB_V1.sys.schemas s on s.schema_id = t.schema_id

select s.name + '.' + t.name as TableName, t.* into #tempTB 
from [localhost].DB_V2.sys.tables t
inner join [localhost].DB_V2.sys.schemas s on s.schema_id = t.schema_id

-- syscolumns插入临时表
select * into #tempCA from DB_V1.dbo.syscolumns 
select * into #tempCB from [localhost].DB_V2.dbo.syscolumns

-- 第一个数据库表和字段 
select b.TableName as 表名, a.name as 字段名, a.length as 长度, c.name as 类型
into #tempA
from #tempCA a
inner join #tempTA b on b.object_id = a.id
inner join systypes c on c.xusertype = a.xusertype
order by b.name 
-- 第二个数据库表和字段 
select b.TableName as 表名, a.name as 字段名, a.length as 长度, c.name as 类型
into #tempB
from #tempCB a
inner join #tempTB b on b.object_id = a.id
inner join systypes c on c.xusertype = a.xusertype
order by b.name

--删掉的字段
select * from    
( 
    select * from #tempA
    except
    select * from #tempB
) a;

--增加的字段
select * from    
( 
    select * from #tempB
    except
    select * from #tempA
) a;

--select * from #tempA
--select * from #tempB

drop table #tempTA, #tempTB, #tempCA, #tempCB, #tempA, #tempB

Access软件网交流QQ群(群号:198465573)
 
 相关文章
简述宏与VBA有何差异   【UMVsoft整理  2007/6/2】
VB中感叹号“!”与圆点“.”的用法差异  【UMVSOFT整理  2008/5/14】
mssql与access的sql语法差异  【umvsoft整理  2008/7/25】
分析Sqlserver与access数据库sql语法的10大差异   【赵文斌  2011/9/14】
差异备份、增量备份、完全备份的区别  【Adolph Sun  2012/11/25】
关于函数中的参数类型为控件与控件名时,在运用上的差异  【殷小宝  2013/12/26】
Access数据库自学与参加培训效果差异分析  【麥田  2014/1/8】
SQL Server备份和还原全攻略, 完全备份,差异备份,增量备...  【缪炜  2015/11/15】
码农和程序员之间的5个关键差异  【宏鹏  2016/1/6】
【Access查询学习】--合并两个表中字段数据有差异的情况下进行...  【麥田  2017/2/10】
两个结构相同的表,比较差异数据并保存差异结果  【易勋  2018/8/23】
SQL Server与Access数据库sql语法十大差异  【宏鹏  2019/6/26】
常见问答
技术分类
相关资源
文章搜索
关于作者

will.miao

文章分类

文章存档

友情链接