当前位置:首页 > 实用技巧 >

创建触发器的sql语句是什么(sql触发器三个表怎么用)

来源:原点资讯(www.yd166.com)时间:2024-02-11 06:40:39作者:YD166手机阅读>>

本教程为大家介绍SQL Server触发器创建、删除、修改、查看方法。

一、触发器是一种特殊的存储过程,它不能被显式地调用,而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施复杂的完整性约束。

二、SQL Server为每个触发器都创建了两个专用表:Inserted表和Deleted表。

这两个表由系统来维护,它们存在于内存中而不是在数据库中。这两个表的结构总是与被该触发器作用的表的结构相同。触发器执行 完成后,与该触发器相关的这两个表也被删除。

Deleted表存放由于执行Delete或Update语句,而要从表中删除的所有行。

Inserted表存放由于执行Insert或Update语句,而要向表中插入的所有行。

三、Instead of 和 After触发器

SQL Server2000提供了两种触发器:Instead of 和After 触发器。这两种触发器的差别在于他们被激活的时间。

Instead of触发器用于替代引起触发器执行的T-SQL语句。除表之外,Instead of 触发器也可以用于视图,用来扩展视图可以支持的更新操作。

After触发器在一个Insert,Update或Deleted语句之后执行,进行约束检查等动作都在After触发器被激活之前发生。After触发器只能用于表。

一个表或视图的每一个修改动作(insert,update和delete)都可以有一个instead of 触发器,一个表的每个修改动作都可以有多个After触发器。

四、触发器的执行过程

如果一个Insert﹑update或者delete语句违反了约束,那幺After触发器不会执行,因为对约束的检查是在After触发器被激动之前发生的。所以After触发器不能超越约束。

Instead of 触发器可以取代激发它的操作来执行。它在Inserted表和Deleted表刚刚建立,其它任何操作还没有发生时被执行。因为Instead of 触发器在约束之前执行,所以它可以对约束进行一些预处理。

五、使用T-SQL语句来创建触发器

基本语句如下:

create trigger trigger_name

on {table_name | view_name}

{for | After | Instead of }

[ insert, update,delete ]

as

sql_statement

六、删除触发器

基本语句如下:

drop trigger trigger_name

七、查看数据库中已有触发器

-- 查看数据库已有触发器

use jxcSoftware

go

select * from sysobjects where xtype='TR'

-- 查看单个触发器

exec sp_helptext '触发器名'

八、修改触发器

基本语句如下:

alter trigger trigger_name

on {table_name | view_name}

{for | After | Instead of }

[ insert, update,delete ]

as

sql_statement

九、相关示例

1、在Orders表中建立触发器,当向Orders表中插入一条订单记录时,检查goods表的货品状态status是否为1(正在整理),是,则不能往Orders表加入该订单。

create trigger orderinsert

on orders

after insert

as

if (select status from goods,inserted

where goods.name=inserted.goodsname)=1

begin

print 'the goods is being processed'

print 'the order cannot be committed'

rollback transaction --回滚,避免加入

end

2、在Orders表建立一个插入触发器,在添加一条订单时,减少Goods表相应的货品记录中的库存。

create trigger orderinsert1

on orders

after insert

as

update goods set storage=storage-inserted.quantity

from goods,inserted

where

goods.name=inserted.goodsname

3、在Goods表建立删除触发器,实现Goods表和Orders表的级联删除。

create trigger goodsdelete

on goods

after delete

as

delete from orders

where goodsname in

(select name from deleted)

4、在Orders表建立一个更新触发器,监视Orders表的订单日期(OrderDate)列,使其不能手工修改.

create trigger orderdateupdate

on orders

after update

as

if update(orderdate)

begin

raiserror(' orderdate cannot be modified',10,1)

rollback transaction

end

5、在Orders表建立一个插入触发器,保证向Orders表插入的货品名必须要在Goods表中一定存在。

create trigger orderinsert3

on orders

after insert

as

if (select count(*) from goods,inserted where goods.name=inserted.goodsname)=0

begin

print ' no entry in goods for this order'

rollback transaction

end

6、Orders表建立一个插入触发器,保证向Orders表插入的货品信息要在Order表中添加

alter trigger addOrder

on Orders

for insert

as

insert into Order

select inserted.Id, inserted.goodName,inserted.Number from inserted

参考:SQL Sever触发器的基本语法与作用

还有就是这我总结出了一些架构视频资料和互联网公司java程序员面试涉及到的绝大部分面试题和答案做成了文档和架构视频资料还有完整高清的java进阶架构学习思维导图免费分享给大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术资料),希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。

创建触发器的sql语句是什么,sql触发器三个表怎么用(1)

资料领取方式:关注 私信关键字【资料】即可免费获取!!!

如果您喜欢本文章,可以点击关注,每天将有更多精彩文章与您分享!

,

栏目热文

怎么定义和使用触发器(触发器怎么设置条件)

怎么定义和使用触发器(触发器怎么设置条件)

一、触发器的定义触发器是一种特殊类型的存储过程,在数据库服务器中发生事件时自动运行。 触发器是为了响应各种DML、DDL...

2024-02-11 06:19:58查看全文 >>

触发器功能描述的四种方法(触发器功能描述的5种方法)

触发器功能描述的四种方法(触发器功能描述的5种方法)

什么叫窄沟效应当JFET或 MESFET沟道较短,<1um的情况下,这样的器件沟道内电场很高,载流子民饱合速度通过...

2024-02-11 06:06:36查看全文 >>

可激活触发器的语句(触发器触发后如何被激活)

可激活触发器的语句(触发器触发后如何被激活)

一、摘要本文主要以 Mysql 数据库为基础,对常用 SQL 语句进行一次深度总结,由于篇幅较长,难免会有些遗漏的地方,...

2024-02-11 06:46:10查看全文 >>

描述触发器的逻辑功能有三种方法(触发器逻辑功能有哪些描述方法)

描述触发器的逻辑功能有三种方法(触发器逻辑功能有哪些描述方法)

基本概念:触发—时钟脉冲边沿作用下的状态刷新称为触发。触发器—具有触发功能的存储单元称为触发器。触发器分类—主从触发器、...

2024-02-11 06:03:16查看全文 >>

海尔电视怎么连wifi没有遥控(海尔电视怎么连wifi没有遥控器)

海尔电视怎么连wifi没有遥控(海尔电视怎么连wifi没有遥控器)

步骤一:更换电池1. 打开遥控器背部的电池仓。2. 取出旧电池,并将其正确地放入垃圾桶中。3. 使用新的适用电池替换旧电...

2024-02-11 06:41:09查看全文 >>

哪条语句触发了触发器(怎么判定触发器的触发时刻)

哪条语句触发了触发器(怎么判定触发器的触发时刻)

MySQL触发器什么是触发器触发器(TRIGGER)是 Mysql 提供给程序员和数据分析员来保证数据完整性的一种方法,...

2024-02-11 06:38:05查看全文 >>

成化十四年演员表全部(成化十四年电视剧演员表全部)

成化十四年演员表全部(成化十四年电视剧演员表全部)

备受瞩目的《成化十四年》于4月1日晚间在爱奇艺播出,这部由成龙监制、戏骨与鲜肉云集的网剧在播出前就引发诸多期待,然而播出...

2024-02-11 06:36:46查看全文 >>

成化十四年电视剧全集介绍(成化十四年48集免费电视连续剧)

成化十四年电视剧全集介绍(成化十四年48集免费电视连续剧)

现代人最大的共通弱点可能就是"懒",不仅懒得做事,也懒得等待。就拿追剧这件事来说,如果一部剧不能在前几集...

2024-02-11 06:30:26查看全文 >>

成化十四年演员表大全(成化十四年演员详细介绍)

成化十四年演员表大全(成化十四年演员详细介绍)

由爱奇艺和冠亚传媒联合出品,成龙监制,杨蓓、李密担任总制片人,根据梦溪石同名小说改编的青春美食探案剧《成化十四年》首度公...

2024-02-11 06:41:40查看全文 >>

电视剧成化十四年演员冬儿(成化十四年电视剧有女主么)

电视剧成化十四年演员冬儿(成化十四年电视剧有女主么)

看电视剧《成化十四年》被冬儿这个神童小吃货圈粉了,妥妥的机灵贪嘴小可爱,长得也太好看了!这样的萌娃谁能不喜欢!背案卷的速...

2024-02-11 06:08:32查看全文 >>

文档排行