当前位置:
代码迷
>>
SQL
>> [MSSQL]主从表级联剔除三种方法
详细解决方案
[MSSQL]主从表级联剔除三种方法
热度:
98
发布时间:
2016-05-05 15:15:19.0
[MSSQL]主从表级联删除三种方法
在ERP系统设计或者其他运用系统经常遇到主从表的问题。
方法一:程序中处理
采用事务处理删除,代码省略。
方法二:触发器处理
示例
-- =============================================-- Author: <David Gong>-- Create date: <2012-06-27>-- Description: <级联删除报价单>-- =============================================ALTER TRIGGER [dbo].[RemoveZMQuotation] ON [dbo].[ZMQuotation] INSTEAD OF DELETEAS BEGIN SET NOCOUNT ON; /*定义触发器使用的变量*/ declare @ID as int declare @sCount Int declare @SerialNo as nvarchar(20) /* 把传送的需要删除的id键值赋值给@ID变量 */ /* 开始事务 */ BEGIN TRAN RemoveZMQuo set @ID=(select id from deleted) set @SerialNo=(select SerialNo from deleted) /* 保存删除前保存点,防止出错 */ Save Tran My_Save1 /* 首先判断单身ZMQuotationLine中是否有所属内容 */ Set @sCount = (Select Count(*) From ZMQuotationLine Where ZMQuotationLine.Pid = @ID) If @sCount > 0 begin delete ZMQuotation where id=@ID delete ZMQuotationLine where Pid=@ID end else begin delete ZMQuotation where id=@ID end If @@Error = 0 begin Commit Transaction end Else Begin Rollback Transaction My_Save1 Raiserror('删除出现错误,记录:%s及其所属内容没有被删除。',16,1,@SerialNo) End SET NOCOUNT OFFEND
三:主键-外键 级联
查看全文
相关解决方案
怎么跟踪winform应用程序发送到数据库的sql(oracle、mssql)
mssql 可以作桌面数据库吗
寻.net、MsSQL、C#方面的老师解决思路
怎么在WIN2003+IIS 配置ASP+PHP+JSP,数据库:MSSQL+MYSQL
mssql 如何样把某列的数据删除
mssql 的查询语法有关问题
ASP+ACESS(MSSQL)模式,还是php+mysql模式?解决办法
PHP 连接MSSQL ,用UTF8提交到MSSQL,mssql 后台管理查询乱码有关问题
php 连接 mssql 的一些有关问题,诚心求人解答
php 读取 mssql 里的空值 怎么判断
MSSQL SERVER超时已经过期的有关问题
mssql JDBC驱动哪里有下啊
要支持oracle mssql mysql db2等多个数据库,大家是如何维护脚本的啊
MSSQL 地区排除查询有关问题
MSSQL Profiler 追踪到的数据都是两条
SSRS(MSSQL 2014)预览跟列印排版位移
mssql 根据时间回计算总值
MSSQL 表中千万数据更新需要10多分钟 请教如何优化
MSSQL 2008 自增列乱跳,该如何解决
mssql 怎么让 字段值 为 其他记录值的计算结果
mssql 在update语句中怎么使用order by
MSSQL 怎么将两个游标的结果集合并
MSSQL 怎么用脚本查询服务器所有数据库在硬盘上存储的地址
mssql 中 如其让表 接受两个数据集
struct如何写入到数据库的varbinary 中,Sql语句如何构造?MSSQL
windows 2003 MSSQL 2008R2 执行操作时忽然断电
MSSQL 数据库 备份有关问题 (上传至网上)
mssql 数据存储在内存中,该怎么处理
mssql ,update from 语句的写法有关问题
MSSQL 数据表 删除记录其后添加记录 表的大小,和数据大小的变化