读书人

insert之前判断表是否存在该记录解决思

发布时间: 2012-01-11 22:28:46 作者: rapoo

insert之前判断表是否存在该记录
各位大侠好,小弟又有SQL 的问题来叨扰大家了...

@ti_id,@proc_id,@mac_id 是随游标变化的变量
t_ring 表结构为(sub_ring_id,........),其中sub_ring_id为主键
t_pmpt_cp表结构为(sub_ring_id,mac_id,proc_id,ti_id)

==========================游标循环开始===================================
@ti_id,@proc_id,@mac_id 被赋值

SQL code
      insert into t_pmpt_cp  select sub_ring_id ,@mac_id,,@proc_id,@ti_id  from t_ring where 1 = 1 and ( (select COUNT(1) as num from t_pmpt_cp where sub_ring_id = sub_ring_id and proc_id = @proc_id and mac_id = @mac_id and ti_id = @ti_id  )<1)  



==========================游标循环结束===================================

我想在一条语句内实现,插入t_pmpt_cp表之前先判断是否存在当前记录,这种写法似乎有问题...
大家有建议吗

[解决办法]
SQL code
insert into t_pmpt_cp  select sub_ring_id ,@mac_id,,@proc_id,@ti_id  from t_ring awhere not exists(select 1 form t_pmpt_cp where id=a.sub_ring_id  --假设以id列作比较,如果有ID相同则为存在     and ( (select COUNT(1) as num from t_pmpt_cp where sub_ring_id = sub_ring_id and proc_id = @proc_id and mac_id = @mac_id and ti_id = @ti_id  )<1) 

读书人网 >SQL Server

热点推荐