我想在表dtStaffGroup(sID,gID)中插入数据
在插入时先判断是否已有sID
如果有则做更新操作
如果没有则做插入操作请问这个存储过程该怎么写?先谢谢各位了!

解决方案 »

  1.   

     if exists (select sid from table) 
      begin
      insert
    end
      

  2.   

    if exists(select 1 from table where id='')
    begin
    udpate 
    set 
    where
    end
    else
    begin
    insert 
    into 
    values
    end
      

  3.   

    "在插入时先判断是否已有sID"如判断sID字段是否存在
    if exists(select sID from dtStaffGroup)如判断sID字段是否存在指定值
    if exists(select 1 from dtStaffGroup where sID=xxx)
      

  4.   

    2005 2008 直接用 merge 语句就可以实现
      

  5.   

    create proc InsertdtStaffGroup
    @sID varchar(255),
    @gID varchar(255)
    as
    begin
    declare @s_sID int
    set @s_sID=(select sID from dtStaffGroup where sID=@sID)
    if( @GongSiziliao_Id>0 )
    begin
    update dtStaffGroup set gID=@gID where sID=@sID
    end
    else
    begin
    insert into dtStaffGroup (sID,gID) values (@sID,@gID)
    end
    end
    基本就是这样写,没有测试,思路是正确的
      

  6.   

    create proc proc_name
    as
    if exists( select sid  from dtStaffGroup where sid='sid' )
      begin
       --有
      end
    else
    begin
        --没有
    end