触发器是一种特殊的存储过程
① 存储过程和触发器到底是个什么玩意
电脑上的主板上的触发器不是存储元件,确实是晶体管元件,比如说早期主板上常见的门电路,不过现在都集成到南桥里了
② 存储过程和触发器的区别
一、参考不同
1、存储过程:是大型的SQL语句集,用于在大型数据库系统中完成特定的功能。
2、初始化:SQLServer提供给程序员和数据分析人员以确保数据初始化的一种方法。
二、特点不同
1、存储过程:存储在数据库中,编译后永久有效,用户通过指定存储过程的名称并指定参数(如果存储过程具有参数)来执行。
2、insert:是与表事件相关的特殊存储过程,程序的执行不被程序调用,也不是由程序手动启动,而是由事件触发,以便在操作表时(插入,删除,更新))执行将被激活。
三、作用不同
1、存储过程:以两个遏制号(##)开头的官僚存储过程,该存储过程将成为存储在tempdb数据库中的临时存储过程,一旦创建了该临时存储过程,它将被连接到服务器稍后。任何用户都可以在没有特殊权限的情况下执行它。
2、设置为:可用于强制引用常量,在添加,更新或删除多个表中的行时终止,保留这些表之间定义的关系。但是,强制引用替换的最佳方法是在相关表中定义主键和外键约束。
③ 数据库中触发器的作用是什么
触发器是数据库提供给程序员和数据分析员来保证数据完整性的一种机制,它是一种与数据表事件相关的特殊的存储过程。触发器的执行不是由程序调用,也不需要手工开启,而是由数据表上的事件来触发,当用户对一个数据表进行增、删、改操作时就会激活它执行。
触发器可以查询其他表,而且可以包含复杂的SQL语句。它们主要用于强制服从复杂的业务规则或要求。触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。
触发器功能强大,可以轻松可靠地实现许多复杂的功能,但也不能过于依赖触发器,滥用触发器会造成关系数据库及应用程序维护困难,性能、效率低下等问题的产生,在实际问题中,要根据实际需要选择合适的解决方案。触发器是一种特殊的存储过程,在插入、删除、修改特定表中的数据时触发执行,拥有比数据库本身更强大的数据控制能力,其作用有以下四大方面。
1.数据安全数据安全主要是指对信息系统中的业务数据提供一种数据变更的审核机制,当其通过安全策略的审核后,允许用户变更相关数据,否则直接拒绝数据变更的请求。
安全原理:基于数据库的值使用户具有操作数据库的某种权利。
((1)可以基于时间限制用户的操作。例如,不允许下班后和节假日修改数据库数据。
(2)可以基于数据库中的数据限制用户的操作。例如,不允许股票价格的升幅一次超过10%。
2.数据审计数据审计主要是指对数据服务器上的记录进行变更时的一种用户权限的即时审查与用户行为的全方位记录,以便事后对数据变更过程的追溯,保证数据变更的合法性。
审计原理:跟踪用户对数据库的操作。
((1)审计用户操作数据库的语句。
(2)把用户对数据库的更新写入审计表。
3.数据约束数据约束是指对用户的操作行为将导致业务数据与实际情况相悖的行为进行检查约束,而不让其发生,从而保证数据的完整性与一致性。
约束原理:对用户操作与实际逻辑的约束检查。
((1)实现数据完整性检查和约束。例如,回退任何企图买进超过自己资金的货物。
(2)提供可变的缺省值。
4.数据连环更新数据连环更新是指当对数据进行更新操作时,将所有与此数据相关联的数据作联合的更新操作,以保证数据的完整性与一致性。
连环更新原理:对关联数据作联合更新操作。
((1)修改或删除时级联修改或删除其他表中与之匹配的行。
(2)修改或删除时把其他表中与之匹配的行设成NULL值。
(3)修改或删除时把其他表中与之匹配的行级联设成缺省值。
④ 数据库触发器是什么
触发器是一类特殊的存储过程,被定义为在对表或视图发出 UPDATE、INSERT 或 DELETE 语句时自动执行。触发器是功能强大的工具,使每个站点可以在有数据修改时自动强制执行其业务规则。触发器可以扩展 SQL Server 约束、默认值和规则的完整性检查逻辑,但只要约束和默认值提供了全部所需的功能,就应使用约束和默认值。
表可以有多个触发器。CREATE TRIGGER 语句可以与 FOR UPDATE、FOR INSERT 或 FOR DELETE 子句一起使用,指定触发器专门用于特定类型的数据修改操作。当指定 FOR UPDATE 时,可以使用 IF UPDATE (column_name) 子句,指定触发器专门用于具体某列的更新。
代码是写在数据库里面的,触发器包含 Transact-SQL 语句,这与存储过程十分相似。
如果你有安装SQL SEVER,那么你可以在SQL SEVER的帮助文档里找到很多详细的解析,打开查询分析器按F1也可以打开SQL SEVER的帮助文档。
示例
下例首先创建一个触发器,当用户在表 roysched 中添加或更改数据时,该触发器向客户端打印一条用户定义消息。然后,使用 ALTER TRIGGER 语句使该触发器仅对 INSERT 活动有效。该触发器有助于提醒向表中插入行或更新行的用户及时通知书的作者和出版商。
USE pubs
GO
CREATE TRIGGER royalty_reminder
ON roysched
WITH ENCRYPTION
FOR INSERT, UPDATE
AS RAISERROR (50009, 16, 10)
-- Now, alter the trigger.
USE pubs
GO
ALTER TRIGGER royalty_reminder
ON roysched
FOR INSERT
AS RAISERROR (50009, 16, 10)