我有两个表,一个有很多记录(表1),另一个表(表2)有相似的数据,但记录少得多。
我需要定期向较大的表中的记录添加标记,其中较小的表中有相应的记录。例如,这可能是一个电子邮件地址。
因此,如果较小的表格(表2)中存在电子邮件地址,请在较大的表格中对此进行标记(表1)
现在,我知道这有点模糊,但实际数据不相关,也不是表/列名称。我正在寻找的是想法/建议,这是最有效的方法。
我是否运行过程......
A)检查一个表中的记录,然后在另一个表中查找相应的记录?然后标记此记录是否匹配。哪种方式最好?
B)用临时表做点什么吗?
c)一些完全不同的东西?请指点。我希望这是有道理的,我希望你能提供帮助。
谢谢!
答案 0 :(得分:6)
在电子邮件地址的两个表之间进行包含INNER JOIN的UPDATE。
答案 1 :(得分:2)
粗略地说,做这样的事情:
Update LargeTable
Set Marker = 1
From LargeTable l
inner join SmallTable s
on s.ID = l.ID
Where s.SomeField = 'Criteria'
答案 2 :(得分:1)
由于您使用的是SQL 2005,因此无法使用MERGE命令。您必须使用INSERT和UPDATE语句来执行此操作。
编写SQL后,您可以创建一个定期执行此语句并安排它的SQL作业。
以下是如何安排工作:http://msdn.microsoft.com/en-us/library/ms190268.aspx
答案 3 :(得分:1)
为什么不创建一个触发器,当在第二个表中放入,删除或更改记录时,该触发器将自动更新第一个表。或者更好的是,当你想知道这些信息而不是denormailzing存储在第一个时,为什么不加入第二个表呢?