比较两个数据库中的视图/存储过程的结构(结构比较,不是功能比较)

CREATE PROC P_COMPDB

@DB1 SYSNAME,   --第一个库

@DB2 SYSNAME    --第二个库

AS

EXEC('

SELECT 类型=CASE ISNULL(A.XTYPE,B.XTYPE) WHEN ''V'' THEN ''视图'' ELSE ''存储过程'' END

    ,匹配情况=CASE 

        WHEN A.NAME IS NULL THEN ''库 ['[email protected]+'] 中无''

        WHEN B.NAME IS NULL THEN ''库 ['[email protected]+'] 中无''

        ELSE ''结构不同'' END

    ,对象名称=ISNULL(A.NAME,B.NAME)

FROM(

    SELECT A.NAME,A.XTYPE,B.COLID,B.TEXT

    FROM ['[email protected]+']..SYSOBJECTS A,['[email protected]+']..SYSCOMMENTS B

    WHERE A.ID=B.ID AND A.XTYPE IN(''V'',''P'') AND A.STATUS>=0

)A FULL JOIN(

    SELECT A.NAME,A.XTYPE,B.COLID,B.TEXT

    FROM ['[email protected]+']..SYSOBJECTS A,['[email protected]+']..SYSCOMMENTS B

    WHERE A.ID=B.ID AND A.XTYPE IN(''V'',''P'') AND A.STATUS>=0

)B ON A.NAME=B.NAME AND A.XTYPE=B.XTYPE AND A.COLID=B.COLID

WHERE A.NAME IS NULL

    OR B.NAME IS NULL

    OR ISNULL(A.TEXT,'''')<>ISNULL(B.TEXT,'''')

GROUP BY A.NAME,B.NAME,A.XTYPE,B.XTYPE

ORDER BY 类型,匹配情况,对象名称')

GO

时间: 2024-08-02 17:14:36

比较两个数据库中的视图/存储过程的结构(结构比较,不是功能比较)的相关文章

两个数据库比较 对比视图存储过程及表结构差异

两个数据库比较 对比视图存储过程及表结构差异 一.视图和存储过程比较 [原理]利用系统表“sysobjects"和系统表“syscomments”,将数据库中的视图和存储过程进行对比.系统表"sysobjects"之前有详细介绍过,有兴趣可以看看:SQL Server系统表sysobjects介绍与使用 如果你看到这段文字,说明您正使用RSS阅读或转自<一棵树-博客园>,原文地址:http://www.cnblogs.com/atree/p/db-compare-

(转载) 两个数据库比较 对比视图存储过程及表结构差异

一.视图和存储过程比较 [原理]利用系统表"sysobjects"和系统表"syscomments",将数据库中的视图和存储过程进行对比.系统表"sysobjects"之前有详细介绍过,有兴趣可以看看:SQL Server系统表sysobjects介绍与使用 [代码] /*--调用示例 exec p_compdb 'DBNAME1','DBNAME2' exec p_compdb 'DBNAME2','DBNAME3' --*/ CREATE p

Java学习总结(十八)——MySQL数据库(4)MySQL数据库中的视图,函数,存储过程中常见循环

一.MySQL存储过程中常见的循环1.while循环:WHILE.....DO.....END WHILE例1:创建存储过程(求1+2+.......+num的和):创建成功,进行调用:显示结果:2.REPEAT循环: REPEAT.........UNTLL END REPEAT例2:创建存储过程:创建完成,调用存储过程:显示结果:3.LOOP循环:LOOP END LOOP 例3:创建存储过程:创建成功,调用存储过程:显示结果:二.MySQL中的视图1.概念:有结构(有行有列),但没有结果(

SQL Server 在多个数据库中创建同一个存储过程(Create Same Stored Procedure in All Databases)

原文:SQL Server 在多个数据库中创建同一个存储过程(Create Same Stored Procedure in All Databases) 一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 遇到的问题(Problems) 实现代码(SQL Codes) 方法一:拼接SQL: 方法二:调用模板存储过程创建存储过程: 总结 扩展阅读 参考文献(References) 二.背景(Contexts) 在我的数据库服务器上,同一个实例

Java对比两个数据库中的表和字段,写个冷门的东西

Java对比两个数据库中的表和字段,写个冷门的东西 转载的 来源网络 目前所在的项目组距离下个版本上线已经很近了,就面临了一个问题:开发人员在开发库上根据需要增加数据表.数据字段.或者变更了字段类型或者字段长度等等. 由于时间比较紧迫,导致在开发过程中不可能一一把DDL数据库脚本记录下来,在比较大的项目中,比如我所在项目开发的系统大概包含了800张左右的表,字段上10000个的情况下,人工处理明显不可行,所以我们就得通过程序来判断比对,哪些是我们需要新增加的表,哪些是我们需要新增加的字段,哪些是

判断两个数据库中不一样的表和存储过程

---两表结构不一样SELECT a.a1,a.a2,a.a3,a.length from(SELECT a.a1,a.a2,a.a3,a.length, b.a1 AS b1,b.a2 AS b2,b.a3 AS b3,b.length AS b4  from (select o.name AS a1, c.name AS a2,t.name AS a3,c.length from dbf.sys.syscolumns cinner join dbf.sys.systypes t on c.x

Postgres数据库中的视图和物化视图

摘自:http://www.cnblogs.com/yjf512/p/4402096.html postgres中的视图在查询的时候进行扫描子表的操作,而物化视图则是实实在在地将数据存成一张表.物化视图是在9.3 之后才有的东西. 创建一个视图 CREATE OR REPLACE VIEW student_view ASSELECT * FROM student LEFT JOIN teacher ON student.teacher_id = teacher.id; 创建一个物化视图 CREA

数据库中的视图索引

一.视图 1.什么是视图: 视图是从一个或多个表中导出来的表,是一种不是一种真正存在的概念. 视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据. 这样,用户可以不用看到整个数据库中的数据,而之关心对自己有用的数据. 数据库中只存放了视图的定义,而没有存放视图中的数据,这些数据存放在原来的表中. 使用视图查询数据时,数据库系统会从原来的表中取出对应的数据. 视图中的数据依赖于原来表中的数据,一旦表中数据发生改变,显示在视图中的数据也会发生改变. 2.视图操作sql: 创建视图: creat

数据库中创建视图

视图   :有联系的表之间,建立虚拟的表! 步骤  :打开数据库中  ‘选用的数据库’,右击‘视图’,选择‘新建视图’.然后填加   ‘选用的数据库’中有关联的  ‘表’,选择视图中 要显示的 ‘列’,然后关闭,保存新视图就创建完成! --drop view       xueshengfenshu   --删除视图 --alter view     xkf                 --修改视图就是删除重写! 只有在前面使用top数字后,才可以使用 order by .视图中不能使用聚合