文档章节

SQL 触发器

可达鸭眉头一皱
 可达鸭眉头一皱
发布于 2016/03/15 14:50
字数 407
阅读 25
收藏 0

一个表添加数据,另一个表也跟着添加的触发器:

create trigger [dbo].[adddate] on [dbo].[person] for insert
as declare @name varchar(20)
declare @sex varchar(20)
declare @Pid varchar(20)
select @name=name,@sex=sex,@Pid=Pid from inserted
insert into person_C (name,sex,Pid) values(@name,@sex,@Pid)

一个表删除、另一个表也删除的触发器:

Create trigger [dbo].[deletedata] on [dbo].[person] for delete
as declare @name varchar(20)
select @name=name from deleted
delete from person_C where name=@name
print '删除成功'

一个表修改,另一个也修改的触发器:

create trigger updatedate on person for update
as declare @name varchar(20)
declare @sex varchar(20)
declare @Pid varchar(20)
select @name=name from deleted ---更新前的数据[select @name=name from inserted---更新后的数据]
update person_C set sex=@sex,Pid=@Pid where name=@name

当表的数据达到什么条件时 抛出异常阻止插入

ALTER trigger  [dbo].[shutdonwadd] on [dbo].[h_swarehouse] for INSERT
as
declare  @prtime varchar(50)
declare @cu_no varchar(20)
declare @serialNumber int
select @prtime=prtime,@cu_no=cu_no,@serialNumber=serialNumber from INSERTED
if ((@prtime='2016/04/14' or @prtime='2016-04-14' or  @prtime='2016/4/14')and @cu_no='HD' and @serialNumber>895)
BEGIN
    RAISERROR('流水号已大于895',16,1)
    ROLLBACK
    RETURN
 END

查询数据库所有的触发器:select name from sysobjects where xtype='TR' --所有触发器名称

查询有触发器的表

select name 表格名称 from sysobjects where xtype='U'  AND id in(select parent_obj from sysobjects where xtype='TR')------查询有触发器的表

select name 表格名称 from sysobjects where xtype='U'  AND id NOT in(select parent_obj from sysobjects where xtype='TR')------查询没有触发器的表

有多少触发器用下面的就行:

select a.name 数据表名,sysobjects.name as 触发器名,sysobjects.crdate as 创建时间 from sysobjects 
left join (select *from sysobjects where xtype='U')as a on sysobjects.parent_obj=a.id
where sysobjects.xtype='TR'


© 著作权归作者所有

可达鸭眉头一皱
粉丝 4
博文 86
码字总数 36313
作品 0
广州
私信 提问
不同类型的 SQL Server 触发器

简介 触发器是数据库对象。基本上当一个和触发器相关的数据定义语言或者数据操纵语言命令语句被执行时,这些特别类型的存储过程就会自动执行。触发器被用在数据定义语言和数据操纵语言命令语...

oschina
2013/07/21
1K
0
Oracle专题16之触发器

1、触发器的概述 a、触发器是什么? 触发器是指存放在数据库中,并且被隐含执行的存储过程。 当发生特定事件时,Oracle会自动执行触发器的相应代码。 b、触发器的类型 DML触发器;DDL触发器;...

极客微信条
2017/12/22
0
0
【强烈强烈推荐】《ORACLE PL/SQL编程详解》全原创(共八篇)--系列文章导航

《ORACLE PL/SQL编程详解》 系列文章目录导航 ——通过知识共享树立个人品牌。 本是成书的,但后来做其他事了,就无偿的贡献出来,被读者夸其目前为止最“实在、经典”的写ORACLE PL/SQL编程...

yonghu86
2012/07/30
0
0
数据库优化之创建存储过程、触发器

存储过程可加快查询的执行速度,提高访问数据的速度,帮助实现模块化编程,保存一致性,提高安全性。触发器是在对表进行插入、更新、删除操作时自动执行的存储过程,通常用于强制业务规则。 ...

杨书凡
2017/12/02
0
0
SQL Server触发器创建、删除、修改、查看

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

CYQ0520
2017/02/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Replugin借助“UI进程”来快速释放Dex

public static boolean preload(PluginInfo pi) { if (pi == null) { return false; } // 借助“UI进程”来快速释放Dex(见PluginFastInstallProviderProxy的说明) return PluginFastInsta......

Gemini-Lin
今天
4
0
Hibernate 5 的模块/包(modules/artifacts)

Hibernate 的功能被拆分成一系列的模块/包(modules/artifacts),其目的是为了对依赖进行独立(模块化)。 模块名称 说明 hibernate-core 这个是 Hibernate 的主要(main (core))模块。定义...

honeymoose
今天
4
0
CSS--属性

一、溢出 当内容多,元素区域小的时候,就会产生溢出效果,默认是纵向溢出 横向溢出:在内容和容器之间再套一层容器,并且内部容器要比外部容器宽 属性:overflow/overflow-x/overflow-y 取值...

wytao1995
今天
4
0
精华帖

第一章 jQuery简介 jQuery是一个JavaScript库 jQuery具备简洁的语法和跨平台的兼容性 简化了JavaScript的操作。 在页面中引入jQuery jQuery是一个JavaScript脚本库,不需要特别的安装,只需要...

流川偑
今天
7
0
语音对话英语翻译在线翻译成中文哪个方法好用

想要进行将中文翻译成英文,或者将英文翻译成中文的操作,其实有一个非常简单的工具就能够帮助完成将语音进行翻译转换的软件。 在应用市场或者百度手机助手等各大应用渠道里面就能够找到一款...

401恶户
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部