--取出數據庫1中的表名,字段名 以及 數據類型
USE TestDB1; --
GO
SELECT
a.name AS TableName, b.name AS ColName, c.name AS DataType
INTO
#tmptable
FROM
sysobjects a --存儲庫中所有的數據表信息
INNER JOIN syscolumns b ON a.id = b.id --數據庫的各表的所有字段
INNER JOIN systypes c ON b.xtype = c.xtype --數據類型
WHERE
a.xtype = 'U'; --類型為 U 的是用戶表
GO
--取出對比數據庫的表名 字段名以及數據類型
USE TestBD2;
SELECT
a.name AS TableName, b.name AS ColName, c.name AS DataType
INTO
#tmptable1
FROM
sysobjects a
INNER JOIN syscolumns b ON a.id = b.id
INNER JOIN systypes c ON c.xtype = b.xtype
WHERE
a.xtype = 'U';
GO
--比較兩表中的數據差異
--);
GO
SELECT
*
FROM
#tmptable a
WHERE
NOT EXISTS ( SELECT
*
FROM
#tmptable1 b
WHERE
a.tablename = b.tablename )
ORDER BY TableName
--最后那個比較語句應該寫成這樣,否則表存在的話查不出它缺少的字段
SELECT
*
FROM
#tmptable a
WHERE
NOT EXISTS ( SELECT
*
FROM
#tmptable1 b
WHERE
a.tablename = b.tablename and a.ColName = b.ColName)