CREATE Procedure C_list_Add
@ConInt int,
@NewsID int,
@MemberID varchar(30),
@AddTime datetime,
@AddDate datetime
as
Select Top 1 @AddDate=AddTime From C_list where MemberID = @MemberID order by AddTime Desc

Select ID From C_list where NewsID = @NewsID and MemberID = @MemberID
    
if @@RowCount<1 
      if @AddDate<>" " 
         if datediff(d,@AddDate,@AddTime)>0 
            Insert into 
               C_list(ConInt,NewsID,MemberID,AddTime)
               values(@ConInt,@NewsID,@MemberID,@AddTime)
             return 0
 else
     return 2
                   return
       else
        return 3
              return
else
   return 1
return
GO

解决方案 »

  1.   

    CREATE Procedure C_list_Add
    @ConInt int,
    @NewsID int,
    @MemberID varchar(30),
    @AddTime datetime,
    @AddDate datetime
    as
    Select Top 1 @AddDate=AddTime From C_list where MemberID = @MemberID order by AddTime Desc

    Select ID From C_list where NewsID = @NewsID and MemberID = @MemberID
        
    if @@RowCount<1 
          if @AddDate<>''
             if datediff(d,@AddDate,@AddTime)>0 
                       begin
                Insert into   C_list(ConInt,NewsID,MemberID,AddTime)
                   values(@ConInt,@NewsID,@MemberID,@AddTime)
                 return(0)
                        end
     else
         return(2) 
           else
            return(3) 
    else
       return(1) 
    GO
      

  2.   

    if @AddDate<>" " 
    双引号改为单引号
      

  3.   

    像1楼那样就行了.
    if 语句的分支中要执行两条或两条以上语句时应该使用begin end来标记区段.否则流程就不一样了.另外就是那个@adddate的检测
      

  4.   

    if condition
         begin 
                ......
         end
    else
         begin 
               . ....
         end=====================
    建议楼主这样写