日期:2014-05-16  浏览次数:20747 次

删除与插入
有两个表T_OITT1,U_OWLD。
当 U_OWLD的Type为1的时候(删除)删除掉T_OITT1 的ItemCode等于U_OWLD OldCode的那一行信息
当 U_OWLD的Type为2的时候(替换)先掉删除掉T_OITT1 的ItemCode等于U_OWLD OldCode的那一行信息,然后再添加U_OWLD 的ItemCode,ItemCode等信息
语句要这么写呢?

------解决方案--------------------
当 U_OWLD的Type为1的时候
DELETE a FROM T_OITT1 AS a INNER JOIN U_OWLD AS b ON a.ItemCode=b.OldCode AND b.TYPE=1

当 U_OWLD的Type为2的时候[不需要删除再新增,直接更新]
UPDATE a
SET ..........................--更新栏位
FROM T_OITT1 AS a INNER JOIN U_OWLD AS b ON a.ItemCode=b.OldCode AND b.TYPE=2
------解决方案--------------------
if exists(select 1 from T_OITT1  where exists(select 1 from U_OWLD where OldCode=T_OITT1.ItemCode and type=1))
begin
delete from T_OITT1  where exists(select 1 from U_OWLD where OldCode=T_OITT1.ItemCode and type=1)
end
if exists(select 1 from T_OITT1  where exists(select 1 from U_OWLD where OldCode=T_OITT1.ItemCode and type=2))
begin
delete from T_OITT1  where exists(select 1 from U_OWLD where OldCode=T_OITT1.ItemCode and type=2)
insert into T_OITT1 select 列1,列2..... from U_OWLD
end