触发器的简单学习
来源:互联网 发布:百度竞价账户优化 编辑:程序博客网 时间:2024/04/28 02:43
--这个语句只是执行主表的单条数据操作
CREATE TRIGGER tri_subject_delete
ON PE_KX_Subject FOR DELETE
AS
BEGIN
DECLARE @ID INT
DECLARE @ExaPaperId INT
SELECT @ID=(SELECT ID FROM DELETED)
SELECT @ExaPaperId=(SELECT ExaPaperId FROM PE_KX_Record pkep WHERE pkep.ID=@ID)
DELETE FROM PE_KX_Record WHERE ExaPaperId=@ExaPaperId
DELETE FROM PE_KX_ExaPaper WHERE SubjectId=@ID
DELETE FROM PE_KX_TestTitle WHERE SubjectId=@ID
END
--若想要触发器执行主表多条数据操作
CREATE TRIGGER tri_subject_delete
ON PE_KX_Subject FOR DELETE
AS
BEGIN
DELETE FROM PE_KX_Record WHERE ExaPaperId IN (SELECT ExaPaperId FROM PE_KX_Record pkep WHERE pkep.ID IN(SELECT ID FROM DELETED))
DELETE FROM PE_KX_ExaPaper WHERE SubjectId IN (SELECT ID FROM DELETED)
DELETE FROM PE_KX_TestTitle WHERE SubjectId IN (SELECT ID FROM DELETED)
END
原因是因为
DECLARE @ID INT
DECLARE @ExaPaperId INT
这类变量只能存储的是一个数值类型、字符串类型、时间等一维的数据结构类型,不能存储表格
比如说当你想要删除多条记录
如:
SELECT 1 AS ID UNION SELECT 2
你若想删除它 又不能定义一个变量接收它,只能用以下方法删除:
DELETE FROM TABLE1 WHERE ID IN (SELECT 1 AS ID UNION SELECT 2)
- 触发器的简单学习
- MySQL 触发器简单学习
- 触发器简单学习
- 触发器学习《一》 简单触发器创建
- 触发器的简单应用
- 触发器的简单使用
- 简单触发器的例子
- 一个简单的触发器
- oracle简单的触发器
- 简单的触发器
- 简单的触发器例题
- 简单的触发器
- 简单的触发器
- 简单的触发器
- 触发器的简单使用
- 触发器的简单定义
- 触发器的简单update
- 触发器的简单应用
- session解决办法
- 如何去掉Android应用启动时带的标题栏及启动时的误解问题剖析?
- 事件传播和默认操作
- 用JDK5.0自带工具解决实际工作中的问题
- android天气预报----google开源天气API,SAX解析
- 触发器的简单学习
- socket
- 关于.h 与 汇编中的.inc文件
- 密码破解全攻略
- Kobject相关
- Struts2.0上传文件
- sphinx 压缩算法
- 一些函数总结(2)
- Cowpatty再战江湖 wpa2-psk之hash高速研究学习