使用触发器控制用户删除业务往来中使用的基础资料
使用触发器控制用户删除业务往来中使用的基础资料
比如说货品资料,如果这个货品有了业务上的往来,比如采购和销售单使用该货品,在基础资料就不能删除该货品,这样的约束如何实现? 有下面两种常见处理方式: 1. 在DAL层的Delete方法中控制,删除前查询业务往来表,如果有使用该基础资料就抛出异常终止删除。 2. 使用DELETE触发器实现。 3. 使用主外键约束 下面是使用触发器实现的代码: ALTER TRIGGER trg_DropProduct ON dbo.tb_Product AFTER DELETE AS BEGIN /********************************************************************************* 货品资料删除触发器,by www.csframework.com -------------------------------------------------- SELECT * FROM tb_Product SELECT * FROM dbo.tb_IAs INSERT INTO tb_Product(ProductCode) VALUES ('BBX') DELETE tb_Product WHERE ProductCode='BBX' DELETE tb_Product WHERE ProductCode='XX' DELETE tb_Product WHERE ProductCode='cpu' **********************************************************************************/ DECLARE @ProductCode VARCHAR(20),@MSG NVARCHAR(200)
SELECT @ProductCode=ISNULL(@ProductCode,'') SELECT @MSG='该货品在业务往来表中使用,不可以删除!'
IF EXISTS(SELECT * FROM dbo.tb_ICs WHERE ProductCode=@ProductCode) GOTO ERR --检查库存盘点 IF EXISTS(SELECT * FROM dbo.tb_INs WHERE ProductCode=@ProductCode) GOTO ERR --检查入库 IF EXISTS(SELECT * FROM dbo.tb_IOs WHERE ProductCode=@ProductCode) GOTO ERR --检查出库 IF EXISTS(SELECT * FROM dbo.tb_POs WHERE ProductCode=@ProductCode) GOTO ERR --检查采购订单 IF EXISTS(SELECT * FROM dbo.tb_SOs WHERE StockCode =@ProductCode) GOTO ERR --检查销售订单
ERR: ROLLBACK TRANSACTION RAISERROR(@MSG,10,1)
FINISHED:
扫一扫加微信
参考文档:
修改用户资料,保存后密码丢失的问题 C# GridView 资料行数据检查使用的方法(ValidateRow与InvalidRowException) 几套版本,界面框架和用户权限等基础框架方面应该是一样的吧? 新增的基础资料窗体,Toolbar上没有增删改查按钮? 使用T-SQL语句配置SQL Server连接池允许的并发用户连接的最大数目 开发技巧:删除资料保存日志并检查数据是否能删除 使用bllBaseDataDict类提交业务单据(主从表)的明细表实例|C/S框架网 组织机构上下级同级用户以及数据权限控制|C/S框架网 删除用户前逻辑判断,检查当前用户是否关联业务数据或创建业务数据 CSFramework.WebApi令牌管理器(Token Provider)实现添加、删除、刷新令牌过期控制 用户数据操作报告(frmOperateReport)窗体使用方法 SQL存储过程:删除基础资料前逻辑判断,检查是否有关联业务数据 Web端使用VUE调用WebApi接口实现用户登录及采用Token方式数据交互 超出了存储过程、函数、触发器或视图的最大嵌套层数(最大层数为 32) C/S开发框架教程:使用基础资料(数据字典)的DAL层更新主从表(或多表)数据
其它资料:
什么是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内容管理系统 | |