事务实例
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