首頁 > 資料庫 > mysql教程 > 比较两个数据库中的视图/存储过程的结构(结构比较,不是功能比较)

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-06-07 16:03:49
原創
999 人瀏覽過

CREATE PROC P_COMPDB@DB1 SYSNAME, --第一个库@DB2 SYSNAME --第二个库ASEXEC(SELECT 类型=CASE ISNULL(A.XTYPE,B.XTYPE) WHEN V THEN 视图 ELSE 存储过程 END ,匹配情况=CASE WHEN A.NAME IS NULL THEN 库 [+@DB1+] 中无 WHEN B.NAME IS NULL THEN 库 [+@D

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 ''库 ['+@DB1+'] 中无''

        WHEN B.NAME IS NULL THEN ''库 ['+@DB2+'] 中无''

        ELSE ''结构不同'' END

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

FROM(

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

    FROM ['+@DB1+']..SYSOBJECTS A,['+@DB1+']..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 ['+@DB2+']..SYSOBJECTS A,['+@DB2+']..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,&#39;&#39;&#39;&#39;)<>ISNULL(B.TEXT,&#39;&#39;&#39;&#39;)

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

ORDER BY 类型,匹配情况,对象名称&#39;)

GO
登入後複製

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
為什麼thinkphp比laravel效能好?
來自於 1970-01-01 08:00:00
0
0
0
empty比isset嚴格一點
來自於 1970-01-01 08:00:00
0
0
0
比較 JavaScript 的 Date 對象
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板