BEGIN TRY
BEGIN TRANSACTION --开始事务
DECLARE @myMemberID NVARCHAR(36) ,--用户ID
@myBizID NVARCHAR(36) ,
@myBizType NVARCHAR(36) ,
@myZanNum BIGINT
--业务ID
SET @myMemberID = '773415785c964cf89ad40528228f111b'
SET @myBizID = 'B6C0738D-CDDC-4361-964B-870FAA795FD2'
SET @myBizType = '0601'
--根据点赞状态更新主表点赞数量
UPDATE [D_Activity]
SET ZanNum = CASE WHEN ( SELECT IsDel
FROM dbo.D_MemberAdmire
WHERE MemberID = @myMemberID
AND BizID = @myBizID
) = 0 THEN ZanNum - 1--记录为0,-1
ELSE ISNULL(ZanNum + 1, 1)
END --没有记录记录为1,+1
WHERE ID = @myBizID
--如果存在点赞记录更新,否者插入
IF EXISTS ( SELECT 1
FROM D_MemberAdmire
WHERE MemberID = @myMemberID
AND BizID = @myBizID )
UPDATE dbo.D_MemberAdmire
SET IsDel = CASE WHEN IsDel = 1 THEN 0
ELSE 1
END--1变0,0变1
WHERE MemberID = @myMemberID
AND BizID = @myBizID;
ELSE
INSERT INTO D_MemberAdmire
( ID ,
BizType ,
BizID ,
MemberID ,
Status ,
IsDel
)
VALUES ( NEWID() ,
@myBizType ,
@myBizID ,
@myMemberID ,
,
)
COMMIT TRANSACTION --提交事务
END TRY
BEGIN CATCH --抓取异常
ROLLBACK TRANSACTION --回滚事务
END CATCH