ALTER PROCEDURE dbo.Threaten_InsertResult (
@qid int,
@result nvarchar(200),
@user_id nvarchar(100) ,

@projectsign int


)AS
/* SET NOCOUNT ON */
declare @aid as int
select @aid=aid from answer where qid=@qid and answer.user_id=@user_id and projectsign=@projectsign

if (@aid!=null)


insert into answer(qid,result,answer.user_id,projectsign) values (@qid,@result,@user_id,@projectsign) 

else
 
   update answer set result=@result where aid=@aid@aid一直都是null,总是执行else后的语句~,这是怎么回是???

解决方案 »

  1.   

    if (@aid!=null)


    insert into answer(qid,result,answer.user_id,projectsign) values (@qid,@result,@user_id,@projectsign) 

    else
     
       update answer set result=@result where aid=@aid先不说问题,你的逻辑反了吧!insert应该和updage换地方
      

  2.   

    declare @aid as int
    set @aid=0select @aid=aid from answer where qid=@qid and answer.user_id=@user_id and projectsign=@projectsign

    if (@aid!=0)你可以用print(@aid)打出来看看
      

  3.   

    select @aid=aid from answer where qid=@qid and answer.user_id=@user_id and projectsign=@projectsign应该是这个语句中@aid并没有获取到符合条件的值你看看是不是当 where qid=@qid and answer.user_id=@user_id and projectsign=@projectsign 是否真的存在记录,可能是你条件不对