【问题标题】:comparing a database table from a table column从表列比较数据库表
【发布时间】:2014-07-26 06:09:05
【问题描述】:

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

我真的不知道代码或语法,因为真的不是 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 顺便说一句

【问题讨论】:

  • 两个表之间需要比较结构还是数据还是结构和数据?
  • 只有数据虽然比较他的结构还是有优势的。

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


【解决方案1】:

试试这个

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

【讨论】:

  • 我试图让它动态化,我只是没有把它放在问题中。尽管如此,还是会尝试的。和tnx
【解决方案2】:

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

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 为空,则该记录仅存在于表 t2 中 如果 t2.key 为空,则此记录仅存在于表 t1 中 如果 t1.key 和 t2.key 不为 null 且有该 id 的记录,则只能检查是否有任何修改

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多