设为首页 加入收藏

TOP

数据库操作--触发器
2015-07-24 11:35:36 来源: 作者: 【 】 浏览:4
Tags:数据库 操作 触发器

触发器是一种特殊类型的存储过程,它不同于存储过程,触发器主要是通过事件进行触发被自动调用执行的,而存储过程可以通过存储过程的名称而被调用。

触发器分为

1、 after触发器

2、 insert触发器

3、 update触发器

4、 delete触发器

触发器是在对表进行插入、更新、删除的时候会自动执行的存储过程。触发器的功能虽然强大,轻松可靠地实现许多复杂的功能,但是过多触发器会造成数据库及应用程序的维护困难,同时对触发器过分的依赖,会影响数据库的结构,同时增加了维护的复杂程序。

在牛腩新闻发布系统中学习了下触发器的使用,在对表中数据进行删除的时候,先删除其他表中的数据,然后执行删除本表中的数据。

USE [newssystem]
GO
/****** Object:  Trigger [dbo].[trigCategoryDelete]    Script Date: 2015/2/8 22:48:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		马世超
-- Create date: 2015-2-4
-- Description:	删除类别触发器
-- =============================================
ALTER TRIGGER [dbo].[trigCategoryDelete]
   ON  [dbo].[category]
   instead of delete
AS 
BEGIN
	declare @caId int
	select @caId=id from deleted
	--删除评论
	delete comment where newsId in (select newsId from news where caId=@caId) 
	--删除新闻
	delete news where caid=@caId
	--删除类别
	delete category where id=@caId
END
这次触发器的使用,发现触发器跟视图和存储过程一样,都没有想象中的那么难。触发器应该还有更大的作用,现在只是相当于简单的了解了一下,相信以后用它会发生更大的作用。
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇QUERY_REWRITE_INTEGRITY 下一篇实例恢复与Oracle的SCN

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Shell 中各种括号的 (2025-12-24 19:50:39)
·Shell 变量 - 菜鸟教 (2025-12-24 19:50:37)
·Linux source 命令 - (2025-12-24 19:50:34)
·switch520最新的地址 (2025-12-24 19:19:41)
·微信聊天功能使用了 (2025-12-24 19:19:39)