sql中简单的触发器功能
触发器分为DML触发器和DDL触发器
DML触发器包含After触发器,执行insert update delete语句后会触发after触发器,会事务回滚
DML触发器还包含instead of触发器,执行insert update delete语句之前触发instead of触发器,适用于
表或视图
举例:after触发器
create trigger Borrow_Insert//往借阅表增加一条数据时,将图书表中的数量-1
on Borrow
with encryption//触发器加密
for insert
as
declare @count int
select @count=BookCount from Book
where BookId=(select BookId from inserted)
if @count>0
update Book set BookCount=BookCount-1
where BookId=(select BookId from inserted)
else
rollback tran
instead of触发器:删除视图中的数据 以 删除 借阅表中的数据 代替
update函数
create trigger Borrow_Update//往借阅表增加一条数据时,将图书表中的数量-1
on Borrow
with encryption//触发器加密
for update
as
if update(BorrowDate)
begin不允许更新BorrowDate'
print ''
end
DDL触发器
create trigger DDL_Operate_Table//禁止操作表
on database
for alter_table,drop_table
as
print '禁止操作表'
rollback
drop table Admin
create trigger DDL_Operate_database//禁止对服务器上的数据库操作
on all server
for drop_database
as
print '禁止删除数据库'
rollback
drop database HRManage
sql中简单的触发器功能的更多相关文章
- pandas pivot_table或者groupby实现sql 中的count distinct 功能
pandas pivot_table或者groupby实现sql 中的count distinct 功能 import pandas as pd import numpy as np data = p ...
- SQL中约束和触发器的停用与启用
如何对SQL中的约束和触发器进行停用与启用,如果有外键约束则相关联表都要进行相应操作. ALTER TABLE TableName CHECK CONSTRAIT ALL --检查约束 ALTER T ...
- Linq 实现普通sql中 where in 的功能
user.ProjectIds 的值是使用逗号分隔的 例如:1,2,3 projectList = (from a in projectList where (user.ProjectIds.Spli ...
- SQL中触发器的使用
创建触发器 是特殊的存储过程,自动执行,一般不要有返回值 类型: 1.后触发器 (AFTER,FOR)先执行对应语句,后执行触发器中的语句 2.前触发器 并没有真正的执行触发语句(insert,up ...
- 详解SQL中Groupings Sets 语句的功能和底层实现逻辑
摘要:本文首先简单介绍 Grouping Sets 的用法,然后以 Spark SQL 作为切入点,深入解析 Grouping Sets 的实现机制. 本文分享自华为云社区<深入理解 SQL 中 ...
- ASP.NET MVC 学习4、Controller中添加SearchIndex页面,实现简单的查询功能
参考:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/examining-the-edit-method ...
- SQL中锁表语句简单理解(针对于一个表)
锁定数据库的一个表 复制代码代码如下: SELECT * FROM table WITH (HOLDLOCK) 注意: 锁定数据库的一个表的区别 复制代码代码如下: SELECT * FROM tab ...
- Oracle SQL中实现indexOf和lastIndexOf功能
Oracle SQL中实现indexOf和lastIndexOf功能 https://www.2cto.com/database/201305/210470.html
- 释放SQL Server占用的内存 .Net 读取xml UrlReWriter 在web.config中简单的配置
释放SQL Server占用的内存 由于Sql Server对于系统内存的管理策略是有多少占多少,除非系统内存不够用了(大约到剩余内存为4M左右),Sql Server才会释放一点点内存.所以很多 ...
随机推荐
- linux设备驱动第二篇:构造和运行模块
上一篇介绍了Linux驱动的概念,以及linux下设备驱动的基本分类情况及其各个分类的依据和差异,这一篇我们来描述如何写一个类似hello world的简单测试驱动程序.而这个驱动的唯一功能就是输 ...
- vim中 E212:无法打开并写入文件 的解决办法
因为centos7刚安装的时候是无法上网的,所以,需要去配置一下ifcfg-ens33文件,但实际上这个文件是只读的文件,root也无法去更改内容,这时候保存的时候需要使用 w ! sudo tee ...
- Class-DbConnectionManipulator:Execute,QueryFirstDefault<>
ylbtech-Class-DbConnectionManipulator:Execute,QueryFirstDefault<> 1.返回顶部 1. public object GetS ...
- PHP-Redis扩展安装(四)
PHP-Redis扩展安装(四) 安装环境链接:http://pan.baidu.com/s/1i4IbJox Memecached 服务器安装(一) memcached php扩展(二) redis ...
- swoole 安装与简单应用
方法一:PECL安装 安装依赖包 apt-get install libpcre3 libpcre3-dev 安装swoole pecl install swoole 修改PHP配置 php.ini ...
- T1218:取石子游戏
[题目描述] 有两堆石子,两个人轮流去取.每次取的时候,只能从较多的那堆石子里取,并且取的数目必须是较少的那堆石子数目的整数倍,最后谁能够把一堆石子取空谁就算赢. 比如初始的时候两堆石子的数目是25和 ...
- Excel中数字和字母混合时提取某些字符进行排序
在excel中,当数字和字母混合在一起的时候,会出现排序错误的情况 比如下图的这种情况.我们希望的是2排在1后面,但是实际上10却排在了1的后面.这时候我们就需要把字符串中的数字提取出来进行排序 第一 ...
- Oracle基础数据类型与运算符
Oracle基础数据类型: 1. 字符型:字符串 char(最大2000), nchar(最大1000, 支持 Unicode)--->固定长 ...
- python序列基本操作
这里讲一基本概念:容器---可以包含其他对象的对象:两种主要的容器是序列(列表和元祖)和映射(字典) 关于序列的通用基本操作:python中常用的序列主要有两种:列表和元祖 -------索引,切片 ...
- FZU 2060 The Sum of Sub-matrices(状态压缩DP)
The Sum of Sub-matrices Description Seen draw a big 3*n matrix , whose entries Ai,j are all integer ...