【牛腩新闻发布系统】--触发器
来源:互联网 发布:做菜教学视频软件 编辑:程序博客网 时间:2024/05/04 18:19
背景
真正听说触发器这个词也是很早了,初次接触数据库的时候就接触到这个词了,但是并没有真正使用过,只是停留在知道的阶段。很开心牛腩学习的时候用到了,牛腩老师讲的很好,学习到了很多。
what?
1. 触发器(trigger)是特殊的存储过程,他的执行不是由程序调用,也不是手工启动,而是由时间来触发。当对一个表进行操作(insert,delete,update)时就会激活它的执行,触发器经常用于加强数据的完整性约束和业务规则等。
2.分类:
(1)DML触发器:after触发器(之后触发):insert触发器,update触发器,delete触发器;instead of触发器(之前触发)
(2)DLL触发器:create,alter,drop
how?
那么到底它是如何使用的呢?
1.找到想要建立触发器的表,依次点击新建触发器
2. 然后就可以看到数据库已经建立好的触发器模板,我们只需要根据自己的实际需要去修改相应的部分即可。
3.牛腩中是根据删除新闻类别一起删除类别下的新闻和评论建立的触发器: USE [newsystem]
GO
/****** Object: Trigger [dbo].[trigCategoryDelete] Script Date: 11/18/2017 14:13:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: 杨光彩
-- Create date: 2017-10-1 08:15:31
-- Description: 删除类别触发器
-- =============================================
ALTER TRIGGER [dbo].[trigCategoryDelete]
ON [dbo].[category]
instead of delete
AS
BEGIN
--定义id
declare @caId int
--在临时表变量中查找id
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
4.在vs中添加代码:CategoryDAO
//删除类别(连同其下的新闻及新闻评论一起删除) public bool Delete(string id) { bool flag = false; string sql = "delete from category where id=@id"; SqlParameter[] paras = new SqlParameter[]{ new SqlParameter("@id",id ) }; int res = sqlhelper.ExecuteNonQuery(sql, paras,CommandType.Text ); if (res > 0) { flag = true; } return flag; }
与存储过程比较
触发器不能用execute语句调用,而是用户执行T-SQL语句时自动执行。从上面CategoryDAO的代码我们也可以看出,在代码中我们并没有调用触发器,而是在delete语句执行的时候触发器自动执行。
对于触发器的理解还需要在之后的学习中进一步深入,比如这里还有一个问题小编没有解决:表中的触发器和数据库触发器有什么区别?
- 【牛腩新闻发布系统】--触发器
- 牛腩新闻发布系统——触发器
- 牛腩新闻发布系统
- 牛腩新闻发布系统
- 牛腩新闻发布系统
- 牛腩新闻系统发布
- 牛腩新闻发布系统
- 牛腩新闻发布系统——触发器使用
- 【牛腩】发布 牛腩新闻发布系统
- 牛腩新闻发布系统-发布
- 【牛腩】牛腩新闻发布系统总结
- 【牛腩新闻发布系统】--初识牛腩
- 牛腩新闻发布系统概况
- 牛腩新闻发布系统总结
- 牛腩新闻发布系统总结
- 牛腩新闻发布系统总结
- 牛腩新闻发布系统总结
- 牛腩新闻发布系统总结
- Spring Data Save()方法
- TV_Interactiable(电视)
- 【JZOJ 5432】【NOIP2017提高A组集训10.28】三元组
- 【codevs 1506】传话
- 别告诉我你会记笔记——工作中如何使用笔记(笔记)
- 【牛腩新闻发布系统】--触发器
- 【HDU
- 创业公司的容器化之路
- jzoj5432【NOIP2017提高A组集训10.28】三元组
- Linux下直接读写物理地址内存
- vue生命周期
- 简单的爬虫----爬取百度百科练习
- python 列表内显示中文的问题解决
- 希尔排序