查询2个数据库不同表
select TABLE_NAME from 第一个数据库名.INFORMATION_SCHEMA.TABLES where TABLE_NAME not in(
select table_name from 第二个数据库名u.INFORMATION_SCHEMA.TABLES)order by TABLE_NAME
查询2个数据库不同表不同字段
SELECT t1.TABLE_NAME, t1.COLUMN_NAME,t2.TABLE_NAME, t2.COLUMN_NAME
from [第一个数据库名].INFORMATION_SCHEMA.COLUMNS t1
full join [第一个数据库名].INFORMATION_SCHEMA.COLUMNS t2 on t2.TABLE_NAME = t1.TABLE_NAME and t2.COLUMN_NAME = t1.COLUMN_NAME
where t1.COLUMN_NAME is null or t2.COLUMN_NAME is null
以下是网上找的
1.获取所有数据库名:
SELECT Name FROM Master..SysDatabases ORDER BY Name
2.获取所有表名:
SELECT Name FROM DatabaseName..SysObjects Where XType='U' ORDER BY Name
XType='U':表示所有用户表;
XType='S':表示所有系统表;
3.获取所有字段名:
SELECT Name FROM SysColumns WHERE id=Object_Id('TableName')