比较两个数据库之间的差异(数据表 字段 数据类型)

 1 --取出数据库1中的表名,字段名 以及 数据类型
 2 USE TestDB1;    --
 3 GO    
 4 SELECT
 5     a.name AS TableName, b.name AS ColName, c.name AS DataType
 6 INTO
 7     #tmptable
 8 FROM
 9     sysobjects a    --存储库中所有的数据表信息
10 INNER JOIN syscolumns b ON a.id = b.id    --数据库的各表的所有字段
11 INNER JOIN systypes c ON b.xtype = c.xtype    --数据类型
12 WHERE
13     a.xtype = 'U';        --类型为 U 的是用户表
14 GO
15 
16 --取出对比数据库的表名 字段名以及数据类型
17 USE TestBD2;
18 
19 SELECT
20     a.name AS TableName, b.name AS ColName, c.name AS DataType
21 INTO
22     #tmptable1
23 FROM
24     sysobjects a
25 INNER JOIN syscolumns b ON a.id = b.id
26 INNER JOIN systypes c ON c.xtype = b.xtype
27 WHERE
28     a.xtype = 'U';
29 GO
30 
31 --比较两表中的数据差异
32     
33                                     
34 --);
35 GO 
36 
37 SELECT
38     *
39 FROM
40     #tmptable a
41 WHERE
42 NOT EXISTS ( SELECT
43     *
44 FROM
45     #tmptable1 b
46 WHERE
47     a.tablename = b.tablename )
48     ORDER BY TableName

猜你喜欢

转载自www.cnblogs.com/bamboo-140/p/9578901.html