zoukankan      html  css  js  c++  java
  • 存储过程 删除两表关联的数据记录

    表Device为设备表(主表),如下图

    表Rxparam为参数表(从表),如下图

    该存储过程是查找Device表中CustomerID为62的所有设备Rxparam表对应的记录都删除。

    CREATE PROCEDURE CopyCustomerInfo
    (
      @FromCustomerID int,
      @ToCustomerID int,
      @CustomerType int
    )
    AS
    BEGIN TRANSACTION
         DECLARE @Error int
         SET @Error=0
         DECLARE @DeviceCount int
         SET @DeviceCount=0
    
    BEGIN
    
            SELECT @DeviceCount=COUNT(*) FROM Device WHERE CustomerID=@FromCustomerID;
             IF @DeviceCount>0
                BEGIN
                  DELETE FROM RXParam WHERE DeviceID IN (SELECT DeviceID FROM Device WHERE CustomerID=@FromCustomerID);  --删除从表对应记录
                  DELETE FROM Device WHERE CustomerID=@FromCustomerID;  --删除主表记录
                  SET @Error=@Error+@@ERROR   --记录错误
                END
            IF @Error>0
               rollback  transaction;       --执行回滚
            ELSE
               COMMIT transaction;        --提交事务
    END
    END
    

    exec CopyCustomerInfo

  • 相关阅读:
    jni ndk 入门
    Activity 四种启动模式
    广播接收者 BroadcastReceiver
    android 焦点 ListView 点击事件获取失败
    android 动画效果
    JAVA 配置
    python 1:列表和字典
    poj1595 水题
    hdu 1181 深搜
    poj3264 划分树
  • 原文地址:https://www.cnblogs.com/lizeyan/p/3402325.html
Copyright © 2011-2022 走看看