若是面对一个表
id      value
1        a
2        b若获得 一条数据 (1 a),无操作;
若获得 一条数据 (1 c),则该表为
id      value
1        c
2        b
若获得 一条数据 (3 d),则该表为
id      value
1        a
2        b
3        d不知何解?望赐教。

解决方案 »

  1.   

    if not exists(select 1 from tb where id=3) insert into tb select 3,'d'
    if exists(select 1 from tb where id=1) update tb set value='c' where id=1 and value<>'c'
      

  2.   

    if   not   exists(select   1   from   tb   where   id=3)   insert   into   tb   select   3, 'd '
    if   exists(select   1   from   tb   where   id=1)   update   tb   set   value= 'c '   where   id=1   and   value <> 'c '
      

  3.   

    if exists(select 1 from 表 where id=1)
       update 表 set value='a' where id=1
    else
       insert 表 select 1,'a'
      

  4.   


    if object_id(N'iu',N'P') is not null
        drop procedure iu
    go
    create procedure iu
    @id int,
    @value nvarchar(10)
    as
    if exists (select 1 from tb where id=@id)
    begin
       if (select [value] from tb where id=@id) <> @value
          update tb set [value] = @value where id=@id
    end
    else
        insert tb values(@id,@value)
    go
      

  5.   

    select @id=id,@value=value from table1 where id=@id and value=@value
    if isnull(@id,'')='' and isnull(@value,'')=''
       insert into table1
       select @id, @value
    else if isnull(@id,'')='' 
       update table1 set id=@id where value=@value
    else
       update table1 set value=@value where id=@id 
      

  6.   

    select   1   from   tb   where   id=3 是啥意思啊?
      

  7.   


    如果tb里有id=3的这条记录,这句话就返回结果“1”,否则返回null。
    然后exists(select  1  from  tb  where  id=3) 就可以返回true/false,
    从而形成if-else分支。