麻烦各位看看,提示有错Alter PROCEDURE CDate
(
  @U_LoginName varchar(200),
  @ProductsName varchar(200),
@ProductsBusiness varchar(200),
 @Ptype varchar(200),
@Price float,
@counts int,
@StartTime datetime,
@EndTime datetime,
@PIP varchar(200),
@PayMode varchar(200),
@GID int,
@SID INT,
@UserName varchar(200),
@Images varchar(200),
@PID INT,
@scounts int,
@StockID int,
@IsTrade  int,
@LastTime  datetime
)

AS
declare  @return int
declare @rcount int
 set @return=-1
set @rcount=0BEGIN Transaction STinsert into MoneyRelease(GID,SID,U_LoginName,ProductsName,ProductsBusiness,UserName,PType,Price,counts,StartTime,EndTime,PIP,Images,payMode) values(@GID,@SID,@U_LoginName,@ProductsName,@ProductsBusiness,@UserName,@PType,@Price,@counts,@StartTime,@EndTime,@PIP,@Images,@payMode)
select @rcount=count(*) from Stock where gid=@gid and sid=@sid and U_LoginName=@U_LoginName
if @rcount <> 0  update Stock set counts=@scounts where StockID=@StockIDelseinsert stock values(@GID,@SID,@U_LoginName,@ProductsName,@ProductsBusiness,@UserName,@PType,@Price,@counts,@LastTime,@payMode,@IsTradeIF @@Error <> 0
    Begin
      
       RollBack Transaction ST
     End
   Else
       
       COMMIT Transaction ST

解决方案 »

  1.   

    insert stock values(@GID,@SID,@U_LoginName,@ProductsName,@ProductsBusiness,@UserName,@PType,@Price,@counts,@LastTime,@p这是什么东东?这不完整啊。
      

  2.   

    消息 156,级别 15,状态 1,过程 CDate,第 47 行
    在关键字 'IF' 附近有语法错误。 
      

  3.   

    我在这里面使用事务,就是如果如下语句出错,insert into MoneyRelease(GID,SID,U_LoginName,ProductsName,ProductsBusiness,UserName,PType,Price,counts,StartTime,EndTime,PIP,Images,payMode) values(@GID,@SID,@U_LoginName,@ProductsName,@ProductsBusiness,@UserName,@PType,@Price,@counts,@StartTime,@EndTime,@PIP,@Images,@payMode)
    select @rcount=count(*) from Stock where gid=@gid and sid=@sid and U_LoginName=@U_LoginName
    if @rcount <> 0 update Stock set counts=@scounts where StockID=@StockIDelseinsert stock values(@GID,@SID,@U_LoginName,@ProductsName,@ProductsBusiness,@UserName,@PType,@Price,@counts,@LastTime,@payMode,@IsTrade
    则回滚事务,麻烦给看一下
      

  4.   

    create PROCEDURE CDate 

      @U_LoginName varchar(200), 
      @ProductsName varchar(200), 
    @ProductsBusiness varchar(200), 
    @Ptype varchar(200), 
    @Price float, 
    @counts int, 
    @StartTime datetime, 
    @EndTime datetime, 
    @PIP varchar(200), 
    @PayMode varchar(200), 
    @GID int, 
    @SID INT, 
    @UserName varchar(200), 
    @Images varchar(200), 
    @PID INT, 
    @scounts int, 
    @StockID int, 
    @IsTrade  int, 
    @LastTime  datetime 
    ) AS 
    declare  @return int 
    declare @rcount int 
    set @return=-1 
    set @rcount=0 BEGIN Transaction ST insert into MoneyRelease(GID,SID,U_LoginName,ProductsName,ProductsBusiness,UserName,PType,Price,counts,StartTime,EndTime,PIP,Images,payMode) values(@GID,@SID,@U_LoginName,@ProductsName,@ProductsBusiness,@UserName,@PType,@Price,@counts,@StartTime,@EndTime,@PIP,@Images,@payMode) 
    select @rcount=count(*) from Stock where gid=@gid and sid=@sid and U_LoginName=@U_LoginName 
    if @rcount <> 0  
    begin
    update Stock set counts=@scounts where StockID=@StockID 
    end
    else 
    begin
    insert stock values(@GID,@SID,@U_LoginName,@ProductsName,@ProductsBusiness,@UserName,@PType,@Price,@counts,@LastTime,@payMode,@IsTrade) 
    end
    IF @@Error <> 0 
    Begin 
          
        RollBack Transaction ST 
    End 
    Else 
    begin  
          COMMIT Transaction ST 
    end