首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

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

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) 

热点排行