SQL:通过比较两个记录表记录(SQL: compare two table record by r

2019-07-04 17:49发布

我想比较recordby记录两个表。 我有两个光标为每个表。 该代码看起来是这样的

Declare Cursor c1 for SELECT * from Table1
OPEN c1
While @@Fetch_status=0
Begin
  Declare Cursor c2 for SELECT * from Table2
  OPEN c2
  WHILE @@Fetch_Status=0
  Begin
     /*Comparison happens here*/
  END
END

fecthing的时候,我必须指定我取其中光标,我该怎么做呢?

编辑

对于表1中的每个记录我想

  • 表2搜索基于该主键记录。
  • 当它被发现,我想更新根据表1中的一列的值表2中多余的列值。
  • 当这个记录表2中失踪,我想将它从表1复制到表2和设置在表2中额外的列的默认值。

开放给其他的解决方案(不局限于光标)

Answer 1:

如果表中有相同的列定义,fastes方法就是使用“除”子句:

SELECT * from Table1
except
SELECT * from Table2

也是在相反的方式运行:

SELECT * from Table2
except
SELECT * from Table1

你会看到确切的差集:

EXCEPT和INTERSECT



Answer 2:

展鹏有一个伟大的工具,这一点,如果你宁愿只花几元钱:

你可以得到一个免费试用,看它是否适合你的需要。



Answer 3:

你就不能...

SELECT * FROM Table1 LEFT JOIN Table2 ON <your matching criteria>

...然后执行对于其右的“半壁江山”的行INSERT是NULL和UPDATE对于那些不是?



文章来源: SQL: compare two table record by record