sql连接删除

此存储过程用于从数据库中删除特定产品的指定期次的所有中奖记录及相关联的订单详情。涉及多个表的级联删除操作,并确保事务的一致性和回滚机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

USE [LotteryData]
GO
/****** 对象:  StoredProcedure [dbo].[sp_DeleteAward]    脚本日期: 07/06/2010 10:09:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:  yabin.zhao
-- Create date: 6.22
-- Description: 删除中奖
-- =============================================
ALTER PROCEDURE [dbo].[sp_DeleteAward]
 @Status int output,
 @issueid varchar(5),
    @productid int,
    @EngineID int
AS
BEGIN
    begin transaction
     /*声明变量*/
    declare @ErrorMsg varchar(200)
 set @Status = 0
     /*初始化变量*/
    delete from  award from AwardGradeDetail award inner join Lotteryorder lo on lo.OrderID=award.AwardOrderID where lo.ProductID=@productid and lo.IssueID=@issueid and lo.EngineID=@EngineID
    if @@error<>0
         begin
           set @ErrorMsg='删除中奖出错'
           set @Status=1
           goto EXIT_ERROR
         end
    delete from  aod from AwardOrderDetail aod inner join Lotteryorder lo on lo.OrderID=aod.AwardOrderID where lo.ProductID=@productid and lo.IssueID=@issueid and lo.EngineID=@EngineID
    if @@error<>0
         begin
           set @ErrorMsg='删除详细出错'
           set @Status=1
           goto EXIT_ERROR
         end
    delete from  ao from AwardOrder ao inner join Lotteryorder lo on lo.OrderID=ao.AwardOrderID where lo.ProductID=@productid and lo.IssueID=@issueid and lo.EngineID=@EngineID
    if @@error<>0
         begin
           set @ErrorMsg='删除订单出错'
           set @Status=1
           goto EXIT_ERROR
         end
    delete from AwardIssue  where IssueID=@issueid and LotteryID = @productid
    if @@error<>0
         begin
           set @ErrorMsg='删除期次出错'
           set @Status=1
           goto EXIT_ERROR
         end
   commit transaction
   goto EXIT_END

     EXIT_ERROR:
           rollback transaction
           raiserror(@ErrorMsg,16,1)
  EXIT_END:
END
================================================================

两个表连接删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值