日期:2014-05-19  浏览次数:20494 次

|M| 求SQL语句 得出A数据库和B数据库不同的表 谢谢
比如我A数据库有表
A
B
C
然后B数据库有表
A
C
D
E
那么我要查出的是
A数据库在B数据库里面没有的表
这里查出来的为表
B

谢谢

------解决方案--------------------
呵呵!!先接分!
如果是在查询分析器里到好办,如果在项目中就麻烦的多了!

------解决方案--------------------
分别查询A,B数据库,找出记录,然后再比较就行啦。
select *
from sysobjects
where type = 'u '

------解决方案--------------------
“SELECT OBJECT_NAME (id) FROM sysobjects WHERE xtype = 'U '
AND OBJECTPROPERTY (id, 'IsMSShipped ') = 0”,这句可以返回数据库当中的所有用户表,你可以用该语句访问库A和库B,返回的结果分别放到DataTable_A和DataTable_B里,然后用返回的结果写个循环比较就可以了。。。。
------解决方案--------------------
分别用
select name from test..sysobjects where type = 'u '

select name from Demo..sysobjects where type = 'u '

得到两个数据库的表名,再在程序中处理比较合适

SQL Server对差集合的支持不好
------解决方案--------------------
foreach(DataRow dr_a in DataTable_A.Rows)
{
foreach(DataRow dr_b in DataTable_B.Rows)
{
if(dr_a[0].ToString()!=dr_b[0].ToString())
{
//不同的表
}
}

}