触发器简单小结
来源:互联网 发布:广电网络和电信网络 编辑:程序博客网 时间:2024/04/29 12:46
首先介绍触发器的两个最重要的基础知识:
1、 触发器分为两种:Instead of 和After 触发器。After触发器,顾名思义,就是在你SQL语句(Insert,Delete,Update)执行之后进行的操作。Instead of 则是在SQL语句之前,而且并不执行SQL语句。
2、 SQL Server为每一个触发器都准备了两个表:Inserted表和Deleted表,当执行Insert操作的时候,Inserted存入了要插入的数据,结构和要插入的数据表结构相同。Delete也是相同的。它们是在内存中,只能读取,不能修改,触发器结束,表也会删除。
一、 触发器基本语句
1、 创建触发器
create trigger trigger_name
on {table_name | view_name}
{for | After | Instead of }
[ insert, update,delete ]
as
sql_statement
2、 删除触发器:
drop trigger trigger_name
3、 查看数据库中已有触发器:
select * from sysobjects where xtype='TR'
4、 修改触发器:
alter trigger trigger_name
on {table_name | view_name}
{for | After | Instead of }
[ insert, update,delete ]
as
sql_statement
二、 可能大家感觉上面的语句大家在书上都能看到,对自己没有太大帮助还是不会写,给大家一个实例,大家就会豁然开朗,知道上面的语句都是什么意思。
下面这个实例作用是当我们向轮胎出入库记录表插入数据的时候,同时将轮胎的数据从仓库表中添加和删除。
create trigger TYRE_IN_OUT_INSERT
on TYRE_OUT_IN //轮胎出入库表
after insert
as
declare @TYRE_EPC varchar(50), @STORAGE varchar(50), @symbol varchar(50);
--在inserted表中查询已经插入记录信息
select @TYRE_EPC = TYRE_EPC, @STORAGE = STORAGE, @symbol = SYMBOL from inserted;
if ( @symbol='入库')
begin
insert into TYRE_STORAGE values(@TYRE_EPC, @STORAGE);
end
if(@symbol='出库')
begin
if(exists (select TYRE_EPC from TYRE_ STORAGE where TYRE_EPC=@TYRE_EPC))
begin
delete from TYRE_ STORAGE where TYRE_EPC=@TYRE_EPC;
end
end
print '出入库成功!';
- 触发器简单小结
- 简单触发器
- 简单触发器
- SQL Server触发器小结
- 数据库触发器小结
- 关于触发器一些小结
- mysql 触发器小结
- Mysql之触发器小结
- Oracle 触发器的使用小结
- 触发器的简单应用
- 触发器的简单使用
- 触发器、序列简单应用
- 简单触发器实例
- 简单触发器实例收藏
- 简单触发器的例子
- 一个简单的触发器
- SQLSERVER简单触发器
- sql-server 简单触发器
- android fragment 使用百度定位
- VP6802S01高清视频输入模块
- HTML <!DOCTYPE> 标签学习
- Lily-建立在HBase上的分布式搜索
- Mysql Workbench 导入 DBDesigner 乱码解决 办法
- 触发器简单小结
- 利用旧表创建新表
- java socket发送十六进制字节内容发生变化的问题解决
- Java基础4--循环--函数--数组
- usb设备的probe全过程
- Xcode4自动生成注释和开发文档
- sql中Count函数的用法
- Java 8实现BASE64编解码
- 基于Hbase存储的分布式消息(IM)系统-JABase