declare @id integer,@val integer
select @id =1 ,@value =5
if exists(select * from table1 where id = @id)
  update table1 set val = @val where id = @id
else 
  insert table1 values(@id,@val)

解决方案 »

  1.   

    1:
    if exists(select * from table1 where id = 3 ) 
        update table1 set val = 10 where id = 3
    else
        insert table1 values(3,10)2: 这样算不算一条语句?
       exec('
    if exists(select * from table1 where id = 3 ) 
        update table1 set val = 10 where id = 3
    else
        insert table1 values(3,10)
    ')
      

  2.   

    declare @id integer,@val integer
    select @id =1 ,@value =5
    if exists(select * from table1 where id = @id)
      update table1 set val = @val where id = @id
    else 
      insert table1 values(@id,@val)
      

  3.   

    declare @id integer,@val integer
    select @id =1 ,@value =5
    if exists(select * from table1 where id = @id)
      update table1 set val = @val where id = @id
    else 
      insert table1 values(@id,@val)
    Microsoft OLE DB Provider for SQL Server 错误 '80040e31' 超时已过期 /Expert/reply.asp,行105
      

  4.   

    update table1 set val=@val where id=@id insert table1 select @id,@val where @id not in (select id from table1)