USE [goodsbuy]
GO
/****** Object:  StoredProcedure [dbo].[yw_OperationEvares]    Script Date: 08/01/2011 10:06:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,刘健>
-- Create date: <Create Date,,2011.7.29>
-- Description: <Description,买家对卖家评价>
-- =============================================
ALTER PROCEDURE [dbo].[yw_OperationEvares]
(
@userId int,  -- 买家UID
@evaluateStatus int, ---评价状态(已评价状态)
@disporderstatus int, ---订单状态(已交易完成状态)
@number nvarchar(50), --商品编号
@EvaluationTypes int,---评价类型
@RatingFraction int ---评价分数
)
AS
DECLARE @EvaOrderId  nvarchar(50) ---评价订单ID
DECLARE @SELLUSERID  int ---卖家ID
DECLARE @SumMonthByFraction  int ---卖家ID
declare @num int =@@rowcount
BEGIN
--与当前日期同属7天内的该买家购买该商品已经交易成功的评价数据
SELECT @EvaOrderId = ORDER_ID,@SELLUSERID = SELLUSERID FROM T_ORDER where ORDER_DATE between convert(varchar,getdate()-7,23) and convert(varchar,getdate()) 
AND BUYUSERID=@userId AND NUMBER=@number AND EVALUATESTATUS =@evaluateStatus AND DISPORDERSTATUS = @disporderstatus
--每个自然月相同买卖家之间的评价记录(总分数)
SELECT @SumMonthByFraction =SUM(ISNULL(Fraction,0))  FROM T_ORDER WHERE datediff(month,ORDER_DATE,getdate())=0 
AND BUYUSERID=@userId AND SELLUSERID=@SELLUSERID AND EVALUATESTATUS =@evaluateStatus AND DISPORDERSTATUS = @disporderstatus

--记录更新评价记录
BEGIN
UPDATE T_ORDER SET Fraction=@RatingFraction,EVALUATESTATUS=@evaluateStatus , EVALUATEDATE=GETDATE() WHERE ORDER_ID=@EvaOrderId
SET @num=@@rowcount
END
 IF @num=0
BEGIN
rollback transaction
return
END --满足前两个条件开始评分
IF(@EvaOrderId IS NOT NULL AND @SumMonthByFraction<7)
BEGIN ---根据类型开始评价
IF(@EvaluationTypes=0)--好评积1分
UPDATE T_ROLE_USER SET SOLDER_PRAISE=SOLDER_PRAISE+@RatingFraction  WHERE ROLE_ID=@SELLUSERID
IF(@EvaluationTypes=1)--中评积0分
UPDATE T_ROLE_USER SET SOLDER_NORMAL=SOLDER_PRAISE+@RatingFraction  WHERE ROLE_ID=@SELLUSERID
IF(@EvaluationTypes=3)--差评积-1分
UPDATE T_ROLE_USER SET SOLDER_CRITICAL=SOLDER_PRAISE+@RatingFraction  WHERE ROLE_ID=@SELLUSERID
END
SET @num=@@rowcount
IF @num=0
BEGIN
rollback transaction
return
END
commit transaction
ENDreturn @num
 
报错如下:
消息 3903,级别 16,状态 1,过程 yw_OperationEvares,第 35 行
ROLLBACK TRANSACTION 请求没有对应的 BEGIN TRANSACTION。