日期:2014-05-18  浏览次数:20500 次

求助:有关百万数据更新
我这里现在已经知道的是表中有百万条数据,在向表中插入新数据之前根据时间和另外一个外键检查是否存在数据,如果存在有关数据则更新有关值,没有的话直接插入。
  我现在用的是IF EXISTS 先检查一下,如果存在就更新,不存在的话添加数据,这样的速度太慢,有哪位大侠提一下建议。

------解决方案--------------------
用merge语法.

------解决方案--------------------
可以用@@ROWCOUNT来判断

SQL code
UPDATE TAB SET ...
WHERE 时间= ...
AND 另外一个外键 = ...

IF @@ROWCOUNT <= 0
   INSERT TAB (...)
   VALUES (...)

------解决方案--------------------
插入:

SQL code

insert into B
select ...
from A t
where not exists (select 1 from B where [] = t.[])