创建表:

CREATE TABLE [dbo].[GeneralRule](
[ID] [int] NOT NULL,
[GeneralRuleName] [nvarchar](50) NULL,
[DeleteFlag] [int] NOT NULL
) CREATE TABLE [dbo].[DetailRule](
[ID] [int] NOT NULL,
[DetailRuleName] [nvarchar](50) NULL,
[ParentId] [int] NULL,
[DeleteFlag] [int] NOT NULL,
) CREATE TABLE [dbo].[DetailRule_bak](
[ID] [int] NOT NULL,
[DetailRuleName] [nvarchar](50) NULL,
[ParentId] [int] NULL,
[DeleteFlag] [int] NOT NULL,
)

创建触发器:

--增加
create trigger triAddGeneralRule
on DetailRule
for insert --为什么事件触发
as
begin
insert into [DetailRule_bak](ID,detailRuleName,ParentId,DeleteFlag)
select ID,detailRuleName,ParentId,DeleteFlag
from INSERTED
end --删除
create trigger triDelGeneralRule
on GeneralRule
for delete --为什么事件触发
as
delete DetailRule
from DetailRule dr,Deleted d
where dr.parentId=d.ID --修改
create trigger triGeneralRule
on GeneralRule
for update --为什么事件触发
as
if update (ID)
begin
update DetailRule
set parentId=i.ID
from DetailRule dr,Deleted d,Inserted i --2个临时表Deleted和Inserted,分别表示触发事件的旧与新记录
where dr.parentId=d.ID
end

if else 触发器

create table employee(emp_id int,emp_name nvarchar(50),gender int,department int,salary numeric(10,2))

create table updated(emp_id int,salary numeric(10,2))

insert into employee values(1,'tom',10,10,6000.00)

insert into updated values(1,6500.00)

create trigger up_salary on employee INSTEAD OF update
as if update (salary)
begin
declare @newSalary numeric(10,2)
declare @oldSalary numeric(10,2)
select @newSalary = salary from updated
select @oldSalary = salary from employee where emp_id = (select emp_id from updated)
if @newSalary > @oldSalary * 1.1
print '工资变动不能超过原来工资的10%'
else
update employee set salary = @newSalary where emp_id = (select emp_id from updated)
end
go

Sq lServer触发器的使用的更多相关文章

  1. 擦亮自己的眼睛去看SQLServer之简单Select(转)

    摘要:这篇文章主要和大家讨论几乎所有人都熟悉,但不少人又陌生的一条select语句. 这篇文章主要和大家讨论几乎所有人都熟悉,但不少人又陌生的一条select语句.不知道大家有没有想过到底是什么东西让 ...

  2. The Windows account sa does not exist and cannot be provisioned as a SQL Server system administrator

    今天遇到一个案例,在使用命令修改一个测试服务器(SQL Server 2014标准版)的服务器排序规则时,遇到了下面错误信息 (具体账号信息脱敏处理,随机生成一个账号密码) The Windows a ...

  3. SQL Server 2012 无人值守安装(加入新实例)

    方法1,通过指定条个參数安装 setup.exe /Q /IACCEPTSQLSERVERLICENSETERMS /ACTION=install /PID=<validpid> /FEA ...

  4. SQL Server 2012 无人值守安装

    方法1,通过指定条个參数安装   setup.exe /Q /IACCEPTSQLSERVERLICENSETERMS /ACTION=install /PID=<validpid> /F ...

  5. Sq server 关于存储过程,触发器的一些理论简述

    http://www.doc88.com/p-2905916227462.html      

  6. Hibernate映射文件创建和删除触发器,存储过程等数据库对象

    创建表,触发器,和存储过程等数据库对象,这里一定要用create 在hibernate.cfg.xml文件中

  7. SQL 视图 局部变量 全局变量 条件语句 事务 触发器

    一.视图 1.视图是一张虚拟表,他所存储的不是实际数据,而是查询语句,但我们可以对视图进行像数据表一样的操作. 2.为什么使用视图呢?我的理解是:1.在远程传输数据时,可以避免过长的查询字符,减少流量 ...

  8. pt-online-schema-change中update触发器的bug

    pt-online-schema-change在对表进行表结构变更时,会创建三个触发器. 如下文测试案例中的t2表,表结构如下: mysql> show create table t2\G . ...

  9. MySQL主从环境下存储过程,函数,触发器,事件的复制情况

    下面,主要是验证在MySQL主从复制环境下,存储过程,函数,触发器,事件的复制情况,这些确实会让人混淆. 首先,创建一张测试表 mysql),age int); Query OK, rows affe ...

随机推荐

  1. zookeeper的Java端API应用

    1. 基本使用 org.apache.zookeeper.Zookeeper是客户端入口主类,负责建立与server的会话.它提供了表1所示几类主要方法: 功能 描述 create 在本地目录树中创建 ...

  2. vue-if与vue-show的区别

    两者都是动态显示DOM元素   不同点: 1.使用方式 v-if是根据后面数据的真假,来判断DOM的添加删除等操作 v-show只是在修改元素的css样式(display属性值)   2.实现过程 v ...

  3. Scrapy基础02

    一.start_requests def start_requests(self): cls = self.__class__ if method_is_overridden(cls, Spider, ...

  4. java.lang.NoClassDefFoundError: org/apache/commons/collections/FastHashMap-----commons-ctions版本问题

    今天用到了一系列的第三方jar包,一环扣一环, 记住一个: 倘若你所导入的第三方jar包中的类一直显示未找到,那就是你的路径出问题了, /WEB-INF/lib目录下才是放第三方jar包位置, 但是今 ...

  5. HDB3 译码器

    一.HDB3译码方案一: 插入V/B的情况是有两种,两个或三个零两端同极性,也就是要把代码二进制表示的“+1 0 0 0 +1”或“-1 0 0 0 -1”变成“1 0 0 0”,把“+1 0 0 + ...

  6. bzoj 1531 Bank notes 多重背包/单调队列

    多重背包二进制优化终于写了一次,注意j的边界条件啊,疯狂RE(还是自己太菜了啊啊)最辣的辣鸡 #include<bits/stdc++.h> using namespace std; in ...

  7. 【游记】关于NOIP2017

    -2017.11.13- Day0.到达酒店无所事事.跟着两个大佬拉着窗帘玩恐怖游戏留下了心理阴影,然后跑去找葱葱一起复习.晚上很晚才睡.Day1.T1结论题,以前写过.T2模拟,细节有点多.T3Di ...

  8. oracle 对现有的表进行列表分区

    create tablespace pur120000 datafile 'D:\orcldata\pur120000.dbf' size 1024m reuse autoextend on next ...

  9. wordpress网站分类目录怎么排序

    1.插件实现分类目录排序.安装插件My Category Order 启用插件,在控制面板的文章菜单下就出现如下图所示的目录调整选项,可以用鼠标随意拖曳调整目录排列顺序. 2.修改代码完成wordpr ...

  10. c++ 回调函数封装

    std::function<void(int a,int b)> ha; //函数封装  当成参数用callback  std::bind(&fun1,this,std::plac ...