比较表列中的数据库表

时间:2014-06-05 09:51:25

标签: sql sql-server sql-server-2005 stored-procedures

我正在尝试创建一个存储过程,用于比较所述数据库表中的表列的数据库表。我这样做是为了确保每个表都已列出并且已知在那里。

我真的不知道代码或语法,因为真的不是一个sql人。

这是我想的代码:

use database_name
if 
((SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES) = (select SQL_name from MainDBF))
print 'Yess!';--something will be put here
else if ((select table_name from information_schema.tables) != (select SQL_name from MainDBF))
print 'Noo!';--something else will put here
else( print'Pass')

我正在使用sql 2005 btw

2 个答案:

答案 0 :(得分:0)

试试这个

IF EXISTS(SELECT 1 FROM sys.tables where name = (select colname from tablename))  
--<Do your Operation here>  

答案 1 :(得分:0)

要比较两个表中的数据,您只需要以下代码:

select * from database1.table1
except
select * from database2.table1

或者您可以使用简单连接

select * from database1.table1 t1
full outer join database2.table1 t2 on t1.key- t2.key

如果t1.key为null,则此记录仅存在于表t2中 如果t2.key为null,则此记录仅存在于表t1中 如果t1.key和t2.key不为空,而是有一个带有此id的记录,则只能检查是否存在任何修饰

为了让这完全动态,我需要几分钟。我稍后会为你做的。

相关问题