/*MS SQL新旧库数据字典比较脚本*/
--注明1:新旧库必须在同一数据库服务器同一实例中,最好以Sa身份登入。
--注明2:本脚本可作为系统升级改造,得到相关信息后作数据迁移之用。
declare @i int
set @i=4 /*注明3:1为要得到新库增加的数据字典信息;
2为要得到旧库多出的数据字典信息;
3为要得到新库增加的表的数据字典信息;
4为要得到旧库多出的表的数据字典信息 */
use temp --打开旧库
SELECT sysobjects.name AS [table], CASE WHEN CAST(sysproperties.[value] AS varchar)
IS NULL THEN '' ELSE CAST(sysproperties.[value] AS varchar) END AS 表说明,
syscolumns.name AS field, CASE WHEN CAST(properties.[value] AS varchar) IS NULL
THEN '' ELSE CAST(properties.[value] AS varchar) END AS 字段说明,
systypes.name AS type, syscolumns.length,
ISNULL(COLUMNPROPERTY(syscolumns.id, syscolumns.name, 'Scale'), 0)
AS 小数位数, syscolumns.isnullable AS isnull,
CASE WHEN syscomments.text IS NULL
THEN '' ELSE syscomments.text END AS [Default],
CASE WHEN COLUMNPROPERTY(syscolumns.id, syscolumns.name, 'IsIdentity')
= 1 THEN '√' ELSE '' END AS 标识, CASE WHEN EXISTS
(SELECT 1
FROM sysobjects
WHERE xtype = 'PK' AND name IN
(SELECT name
FROM sysindexes
WHERE indid IN
(SELECT indid
FROM sysindexkeys
WHERE id = syscolumns.id AND colid = syscolumns.colid)))
THEN '√' ELSE '' END AS 主键 into #old
FROM syscolumns INNER JOIN
sysobjects ON sysobjects.id = syscolumns.id INNER JOIN
systypes ON syscolumns.xtype = systypes.xtype LEFT OUTER JOIN
sysproperties properties ON syscolumns.id = properties.id AND
syscolumns.colid = properties.smallid LEFT OUTER JOIN
sysproperties ON sysobjects.id = sysproperties.id AND
sysproperties.smallid = 0 LEFT OUTER JOIN
syscomments ON syscolumns.cdefault = syscomments.id
WHERE (sysobjects.xtype = 'U')
use accdb --打开新库
SELECT sysobjects.name AS [table], CASE WHEN CAST(sysproperties.[value] AS varchar)
IS NULL THEN '' ELSE CAST(sysproperties.[value] AS varchar) END AS 表说明,
syscolumns.name AS field, CASE WHEN CAST(properties.[value] AS varchar) IS NULL
THEN '' ELSE CAST(properties.[value] AS varchar) END AS 字段说明,
systypes.name AS type, syscolumns.length,
ISNULL(COLUMNPROPERTY(syscolumns.id, syscolumns.name, 'Scale'), 0)
AS 小数位数, syscolumns.isnullable AS isnull,
CASE WHEN syscomments.text IS NULL
THEN '' ELSE syscomments.text END AS [Default],
CASE WHEN COLUMNPROPERTY(syscolumns.id, syscolumns.name, 'IsIdentity')
= 1 THEN '√' ELSE '' END AS 标识, CASE WHEN EXISTS
(SELECT 1
FROM sysobjects
WHERE xtype = 'PK' AND name IN
(SELECT name
FROM sysindexes
WHERE indid IN
(SELECT indid
FROM sysindexkeys
WHERE id = syscolumns.id AND colid = syscolumns.colid)))
THEN '√' ELSE '' END AS 主键 into #new
FROM syscolumns INNER JOIN
sysobjects ON sysobjects.id = syscolumns.id INNER JOIN
systypes ON syscolumns.xtype = systypes.xtype LEFT OUTER JOIN
sysproperties properties ON syscolumns.id = properties.id AND
syscolumns.colid = properties.smallid LEFT OUTER JOIN
sysproperties ON sysobjects.id = sysproperties.id AND
sysproperties.smallid = 0 LEFT OUTER JOIN
syscomments ON syscolumns.cdefault = syscomments.id
WHERE (sysobjects.xtype = 'U')
if @i=1
begin
select n.* --新库与旧库相比较后新库增加的数据字典信息
from #new n left join #old o on n.[table]=o.[table] and n.field=o.field where o.[table] is null
or o.field is null order by n.[table],n.field
end
else
begin
if @i=2
begin
select o.* --新库与旧库相比较后旧库多出的数据字典信息
from #new n right join #old o on n.[table]=o.[table] and n.field=o.field where n.[table] is null
or n.field is null order by o.[table],o.field
end
else
begin
if @i=3
begin
select * --新库与旧库相比较后新库增加的表的数据字典信息
from #new where [table] <> all(select [table] from #old ) order by [table],field
end
else
begin
if @i=4
begin
select * --新库与旧库相比较后旧库多出的表的数据字典信息
from #old where [table] <> all(select [table] from #new ) order by [table],field
end
else
begin
select '出错啦'
end
end
end
end
drop table #old
drop table #new
分享到:
相关推荐
tarjan算法呕心沥血之作,动画演示,步步清晰可见,详细的描述了tarjan算法的工作过程,比网上的单纯的图片更加容易理解。
Hive操作笔记(呕心沥血制作)Hive操作笔记(呕心沥血制作)Hive操作笔记(呕心沥血制作)Hive操作笔记(呕心沥血制作)Hive操作笔记(呕心沥血制作)Hive操作笔记(呕心沥血制作)Hive操作笔记(呕心沥血制作)Hive...
VC常用小知识--VC常用小技巧【编程人员必备】【大师呕心沥血之作】 分比较高 但是物有所值 下了绝对不厚会 150也技术文档,大师经典之作
文史类总复习提纲,针对中国传媒大学,考研,呕心沥血之文史完全整理版,以及其他文科类学校考研。非常详细,
自己写的分页类,是通用类,可以直接调用。在struts,spring中都没问题
c#封装的矩阵类,好东西不要嫌贵,本人创作它的时候四处都找不到全面的参考资料,我第一个创作出来自然贵点,包含了矩阵的+ - *运算符重载,方程求解gass完全主元法,JACIBO叠带法,GassSeid叠带法,矩阵的LU,QR,...
经过我几周呕心沥血的制造,终于甘出来了,内容免费,但希望大家给个宝贵的赞,谢谢!
深入学习分布鲁棒优化的程序,基于PCA的电力系统分布鲁棒优化,考虑机组组合和风力等,基于IEEE 6 118 300节点测试系统。结果正确,收敛性强。 运行环境:matlab+gurobi/cplex
界面精美 asp.net .net2.0 全系统无刷新技术 atlas框架 三层结构
一部高级Bash脚本编程指南~~~呕心沥血之作~~
vlookup黄金教程,excelhome数位版主呕心沥血之作!
地下车库防水技术交底【呕心沥血整理版】.pdf
内部的数据中心级NEXUS系列交换机的设备特性及配置特性讲解 ,很好的笔记。
众所周知,camunda是由activiti5演变而来的,所以由activiti5迁移到camunda是非常丝滑的,官网上也有迁移需要的sql脚本,但是activiti6的迁移官网原文是这么说的:If you are on a more recent Activiti version or ...
常见Linux & Git相关问题解决方案(呕心沥血制作)
本资源是本人呕心沥血之作,希望对做BOM的同仁有所帮助。 所有的机种的BOM可以保存在一个SQL数据库表中 数据结构超简单: 记录号(自动生成); 父件号; 子件号; 数量 核心技术: 在SQL Server中产生一个临时...
本人呕心沥血之作 附加2005数据库 peizhi.ini 放入C盘目录下(在计算器第一次启动后就可以删除) 模仿CASIO计算机 附加功能很多 比如局域网聊天,换皮肤,方差,平方差 大家可以慢慢琢磨
部编小学语文古诗文言文--呕心沥血制作.doc
作者呕心沥血之作,转自老莫的博客。
ERP实施呕心沥血谈,多年的工作总结,对于从事ERP行业的人来说是很有帮助的