SQL存储过程:删除基础资料前逻辑判断,检查是否有关联业务数据
SQL存储过程:删除基础资料前逻辑判断,检查是否有关联业务数据
我们设计的业务系统,在删除基础资料(比如:客户资料、用户资料)前必须检查当前用户或客户是否关联业务数据、当前用户是否创建业务数据,若有关联业务数据是不可删除的,避免产生无效数据。 以下提供存储过程仅供参考。 删除客户资料存储过程: SQL Code: ALTER PROCEDURE [dbo].[usp_DeleteCustomer] @CustomerID VARCHAR(30)--客户编码 AS BEGIN /************************************************************ 功能:删除客户 SELECT * FROM dbo.tb_Customer SELECT * FROM dbo.tb_OrderDetail usp_DeleteCustomer 'admin' usp_DeleteCustomer 'C-000003' *************************************************************/ DECLARE @Count INT SELECT @Count=0; --检查业务关联 SELECT @Count=@Count+COUNT(1) FROM dbo.tb_OrderDetail WHERE CustomerId=@CustomerID SELECT @Count=@Count+COUNT(1) FROM dbo.tb_GoodsDownDtl WHERE CustomerId=@CustomerID SELECT @Count=@Count+COUNT(1) FROM dbo.tb_GoodsUpDtl WHERE CustomerId=@CustomerID IF @Count>0 BEGIN SELECT 0 AS Result,'当前客户关联业务数据,不可删除!' AS ErrMsg; RETURN; END ELSE BEGIN --删除客户资料 DELETE FROM tb_Customer WHERE CustomerID=@CustomerID SELECT 1 AS Result,NULL AS ErrMsg; END; END //来源:C/S框架网 | www.csframework.com | QQ:23404761 SQL Code: ALTER PROCEDURE [dbo].[usp_DeleteEmployee] @EmpID VARCHAR(30)--员工编码 AS BEGIN /************************************************************ 功能:删除员工资料 SELECT * FROM dbo.tb_Employee SELECT * FROM dbo.tb_GoodsDownDtl usp_DeleteEmployee 'admin' usp_DeleteEmployee 'E-000003' usp_DeleteEmployee 'E-000012' *************************************************************/ DECLARE @Count INT SELECT @Count=0; --检查业务关联 SELECT @Count=@Count+COUNT(1) FROM dbo.tb_GoodsDownDtl WHERE EmPId=@EmpID SELECT @Count=@Count+COUNT(1) FROM dbo.tb_GoodsUpDtl WHERE EmPId=@EmpID IF @Count>0 BEGIN SELECT 0 AS Result,'当前员工关联业务数据,不可删除!' AS ErrMsg; RETURN; END ELSE BEGIN --删除客户资料 DELETE FROM tb_Employee WHERE EmpID=@EmpID SELECT 1 AS Result,NULL AS ErrMsg; END; END //来源:C/S框架网 | www.csframework.com | QQ:23404761 扫一扫加微信
参考文档:
使用触发器控制用户删除业务往来中使用的基础资料 平台内所有的SQL都用存储过程? SQL Server 判断是否存在数据库,表,列,视图 C/S开发框架企业版数据库改名后需要修改的存储过程、函数和视图 新建业务账套需要修改的存储过程、函数和视图 开发技巧:删除资料保存日志并检查数据是否能删除 业务数据库模板表结构、存储过程及函数(CSFrameworkV5.New) SQL存储过程获取拼音助记码 删除用户前逻辑判断,检查当前用户是否关联业务数据或创建业务数据 SQL Server 存储过程详解 SQL脚本获取SQLServer数据库目录存储过程:f_GetDBPath 删除数据库备份文件存储过程:p_DeleteBakFiles SQL备份数据库存储过程:p_BackupDB MSSQL 查询所有用户自定义存储过程和自定义函数 CSFrameworkV5.0旗舰版-数据库存储过程、函数列表
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |