牛腩新闻发布--触发器语句

目的

这篇博客是对上一篇博客进行优化,上一篇博客讲述了如何不用<新建触发器>建立新的触发器。这一篇博客中介绍一些触发器的语句,希望大家能提出一些关于触发器的问题,让大伙一起讨论讨论。

“你有一个苹果,我有一个苹果,我们彼此交换,每人还是一个苹果;你有一种思想,我有一种思想,我们彼此交换,每人可拥有两种思想.”

内容

插入语句INSERT

create trigger [插入触发器名称]
    on [表1名称]
    for insert
as
    select * from [表2名称]
    update [表5名称] set [列4名称]='' where [列5名称]=''
begin
    delete [表3名称] where [列1名称] in (select [列2名称] from [表4名称] where [列3名称]='')
end
go

删除语句DELETE

create trigger [删除触发器名称]
    on [表1名称]
    for delete
as
    select * from [表2名称]
    update [表5名称] set [列4名称]='' where [列5名称]=''
begin
    delete [表3名称] where [列1名称] in (select [列2名称] from [表4名称] where [列3名称]='')
end
go

修改语句UPDATE

create trigger [修改触发器名称]
    on [表1名称]
    for update
as
    update [表5名称] set [列4名称]='' where [列5名称]=''
begin
    delete [表3名称] where [列1名称] in (select [列2名称] from [表4名称] where [列3名称]='')
end
go

总结

大家可以发现,有很多单词在SQL中经常用到,如下:
CREATE 语句,如:CREATE DATABASE、CREATE TABLE、CREATE INDEX 等。
ALTER 语句,如:ALTER DATABASE、ALTER TABLE、ALTER INDEX 等。
DROP 语句,如:DROP DATABASE、DROP TABLE、DROP INDEX 等。
DISK 语句,如:DISK INIT、DISK RESIZE。
LOAD 语句,如:LOAD DATABASE、LOAD LOG。
RESTORE 语句,如:RESTORE DATABASE、RESTORE LOG。

优点

触发器可通过数据库中的相关表实现级联更改,不过,通过级联引用完整性约束可以更有效地执行这些更改。触发器可以强制用比CHECK约束定义的约束更为复杂的约束。与 CHECK 约束不同,触发器可以引用其它表中的列。例如,触发器可以使用另一个表中的 SELECT 比较插入或更新的数据,以及执行其它操作,如修改数据或显示用户定义错误信息。触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。一个表中的多个同类触发器(INSERT、UPDATE 或 DELETE)允许采取多个不同的对策以响应同一个修改语句。

缺点

触发器功能强大,轻松可靠地实现许多复杂的功能,为什么又要慎用呢。触发器本身没有过错,但由于我们的滥用会造成数据库及应用程序的维护困难。在数据库操作中,我们可以通过关系、触发器、存储过程、应用程序等来实现数据操作…… 同时规则、约束、缺省值也是保证数据完整性的重要保障。如果我们对触发器过分的依赖,势必影响数据库的结构,同时增加了维护的复杂程度。

猜你喜欢

转载自blog.csdn.net/luojun13class/article/details/80520562
今日推荐