- 浏览: 170288 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
917380319:
找了N多个,就你的能在安卓远程调用,谢谢了
Web Service修炼之二Xfire+Spring -
alpenliebe:
马克一下,日后学习
知识收集9【原创】 -
leo_lnx:
very good,顶大兵!
知识收集3【原创】 -
fengyuan_2012:
不错...
SSH搭建的框架,提供源码 -
影非弦:
没有效果图看啊
FusionChart实现的动态统计图
在SQL Server 2005中,触发器可以分为两大类:DML触发器和DDL触发器
DML触发器:DML触发器是当数据库服务器中发生数据操作语言(Data Manipulation Language)事件时执行的存储过程。DML触发器又分为两类:After触发器和Instead Of触发器
DDL触发器:DDL触发器是在响应数据定义语言(Data Definition Language)事件时执行的存储过程。DDL触发器一般用于执行数据库中管理任务。如审核和规范数据库操作、防止数据库表结构被修改等。
DML触发器的分类
SQL Server 2005的DML触发器分为两类:
After触发器:这类触发器是在记录已经改变完之后(after),才会被激活执行,它主要是用于记录变更后的处理或检查,一旦发现错误,也可以用Rollback Transaction语句来回滚本次的操作。
Instead Of触发器:这类触发器一般是用来取代原本的操作,在记录变更之前发生的,它并不去执行原来SQL语句里的操作(Insert、Update、Delete),而去执行触发器本身所定义的操作
create table employees(
employee_id int primary key not null,
last_name varchar(50) null,
first_name varchar(50) null,
hire_date datetime null,
job_id int null,
email varchar(500) null,
department_id int null,
salary int null,
commission_pct int null
)
create trigger employees_update
on employees
after update
as
begin
print '有一个员工更改了'
end
create trigger employees_insert
on employees
after insert
as
begin
print '有一个员工增加了'
end
create trigger employees_delete
on employees
after delete
as
begin
print '有一个员工删除了'
end
insert into employees(employee_id,last_name,first_name,hire_date,job_id,email,department_id,salary,commission_pct )
values( 12345,'Chen','Donny', '2010-05-08', 12, 'donny@hotmail.com',60,10000,25);
delete employees
update employees set last_name = 'dabing' where employee_id=12345;
select * from employees
select commission_pct from employees where employee_id=12345;
drop trigger employees_insert
create trigger employees_insert
on employees
after insert
as
begin
declare @employee_id int
set @employee_id = (select employee_id from inserted)
if(@employee_id > 5 )
begin
print '员工号大于的不能添加'
Rollback Transaction
end
end;
alter trigger employees_insert
on employees
instead of insert
as
begin
declare @employee_id int
set @employee_id = (select employee_id from inserted)
if(@employee_id > 5 )
begin
print '员工号大于的不能添加'
end
end;
drop trigger employees_delete
create trigger employees_delete
on employees
instead of delete
as
begin
declare @employee_id int
set @employee_id = (select employee_id from deleted)
if(@employee_id > 2 )
begin
print '员工号大于的不能删除'
end
end;
delete employees where employee_id = '3'
insert into employees(employee_id,last_name,first_name,hire_date,job_id,email,department_id,salary,commission_pct )
values( 1,'Chen','Donny', '2010-05-08', 12, 'donny@hotmail.com',60,10000,25);
insert into employees(employee_id,last_name,first_name,hire_date,job_id,email,department_id,salary,commission_pct )
values( 2,'Chen','Donny', '2010-05-08', 12, 'donny@hotmail.com',60,10000,25);
insert into employees(employee_id,last_name,first_name,hire_date,job_id,email,department_id,salary,commission_pct )
values( 3,'Chen','Donny', '2010-05-08', 12, 'donny@hotmail.com',60,10000,25);
insert into employees(employee_id,last_name,first_name,hire_date,job_id,email,department_id,salary,commission_pct )
values( 4,'Chen','Donny', '2010-05-08', 12, 'donny@hotmail.com',60,10000,25);
insert into employees(employee_id,last_name,first_name,hire_date,job_id,email,department_id,salary,commission_pct )
values( 5,'Chen','Donny', '2010-05-08', 12, 'donny@hotmail.com',60,10000,25);
insert into employees(employee_id,last_name,first_name,hire_date,job_id,email,department_id,salary,commission_pct )
values( 6,'Chen','Donny', '2010-05-08', 12, 'donny@hotmail.com',60,10000,25);
select * from employees
发表评论
-
数据库每日一练01
2010-06-12 18:08 1021部门月份业绩表 CREATE TABLE [dbo].[bm ... -
数据库总结十存储过程
2010-05-31 21:00 811 什么是存储过程存储过程(procedure)类似于C语言中 ... -
数据库总结十完整性约束
2010-05-24 12:10 3859 定义 数据完整性用于保证数据库中数据的正确性、一 ... -
数据库总结八分区表、索引和视图
2010-05-19 20:25 2625分区表: 分区表的目的是将同一张 ... -
数据库总结七事务
2010-05-16 10:54 907定义 事务(Transaction)是由对数据库的若干操作组 ... -
数据库总结六视图
2010-05-14 20:13 1283视图是由一个或多个数据表(基本表)或视图导出的虚拟表或查询表, ... -
数据库总结五游标
2010-05-13 21:17 849create table users( id int ... -
数据库总结四游标
2010-05-13 21:15 788打开游标 语法格式:OPEN [GLOBAL] 游标名 Ø ... -
数据库总结三游标
2010-05-13 21:13 947游标(Cursor)是用户从查询记录集中逐条逐行地访问(移动读 ... -
数据库总结二索引
2010-05-12 21:13 824非聚集索引 非聚集索引的数据存储在一 ... -
数据库总结一索引
2010-05-12 21:11 962索引是数据库随机检索的常用手段,它实际上就是记录的关键字与其 ... -
工作总结8——数据库小总结
2010-03-13 19:24 1034最近与一个哥们讨论了一晚上,数据库的并 ... -
工作总结7
2010-01-24 16:39 824在根据业务进行查询处理的时候,尽量把条件放到查询S ... -
工作总结6
2010-01-20 20:54 828在做数据查询的时候,利用了数据库中的 ... -
数据库连接不上解决方案
2009-12-05 13:17 2097在使用网站管理工具做登录页面的时候遇到的问题 所遇问题: ... -
数据库问题解决方案
2009-12-05 13:11 15641.右键服务器,属性--安全性,服务器身份验证选SQL Ser ... -
数据库三范式最简单最易记的解释
2009-07-30 14:30 906书上讲了好多, 归结起来3句话: 1NF:字段不可分; 2N ... -
SQL性能优化2
2009-07-23 15:14 5831 逻辑数据库和表的设 ... -
SQL性能优化1
2009-07-23 15:08 7651.对查询进行优化,应尽量避免全表扫描,首先应考虑在 wher ... -
Sql性能优化
2009-07-23 14:58 1959操作符优化 IN 操作符用IN写出来的SQL的优点是比较容易 ...
相关推荐
### 数据库实验6:触发器 #### 一、实验背景及目标 本次实验的主要目的是让学生深入理解并掌握数据库触发器的使用方法。触发器是一种特殊类型的存储过程,它被自动执行,当特定事件(如数据的插入、更新或删除)...
### 在数据库中创建触发器时遇到命名无效的问题 在数据库管理与开发过程中,触发器是一种非常重要的机制,它能够在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行预定义的动作。触发器可以用来确保...
“数据库存储器及触发器实验报告” 从给定的文件信息中,我们可以总结出以下几个知识点: 1. 存储过程的创建、修改、使用、删除 存储过程是指将一组SQL语句封装成一个单元,以便重复使用的数据库对象。在实验中,...
触发器是数据库级别的事件驱动程序,当特定的DML操作(如INSERT、UPDATE或DELETE)发生时,触发器自动执行。触发器的优点包括: 1. 数据完整性:可以通过触发器强制执行复杂的业务规则,确保数据的一致性和准确性。 ...
总结起来,SQL Server中的存储过程和触发器是数据库开发中的重要工具。存储过程提供了封装和重用代码的能力,提高了性能和安全性,而触发器则允许我们实现复杂的业务逻辑和数据完整性约束,两者结合使用可以构建更...
总结,数据库触发器是数据库设计中的重要工具,虽然有其独特的优点,但也需谨慎使用,以免引入不必要的复杂性和潜在问题。在实际应用中,应根据具体需求权衡是否使用触发器,以及如何设计和管理触发器,以实现高效、...
总结来说,C#与数据库触发器的交互主要是通过编写SQL语句来定义触发器,然后在C#代码中执行这些SQL语句。触发器可以用于实现复杂的数据约束和业务逻辑,但需谨慎使用,以免引起不必要的性能问题。同时,理解和管理好...
【Sakila数据库触发器的理解】 ...总结来说,Sakila数据库中的触发器和视图是实现业务逻辑和数据管理的关键工具。理解并熟练掌握这些概念,能够帮助我们更好地设计和维护数据库,满足各种复杂的应用需求。
根据给定的文件信息,我们可以总结出以下几个关键的知识点: ### 一、触发器的概念与用途 触发器是SQL Server中一种特殊的存储过程,当指定的事件(如INSERT、UPDATE或DELETE)发生时,它会自动执行。触发器主要...
总结来说,Oracle数据库触发器是一种强大的工具,用于扩展数据库的行为,但需要谨慎使用,以防止性能问题和维护难题。在实际项目中,应综合考虑业务需求、性能和可维护性来决定是否使用触发器。
总结起来,这个系统展示了如何利用MFC作为客户端工具,配合SQL Server的强大数据库功能,实现仓库管理的自动化和智能化。通过触发器和存储过程,系统能够高效地处理出入库事务,并确保数据的完整性和一致性。对于...
### 数据库触发器详解 #### 一、概述 在数据库管理中,触发器是一种非常重要的功能,用于确保数据完整性和一致性。本文将详细介绍数据库触发器的概念及其三种主要类型:INSERT触发器、DELETE触发器和UPDATE触发器...
### 数据库实例整理包括触发器与事务的关键知识点 #### 触发器实例解析 ##### 更新触发器示例 - **背景介绍**: - 在数据库管理中,有时我们需要确保两个或多个表之间的数据一致性。例如,当某个表的数据发生...
数据库实验6(触发器应用) 本实验的主要目的是掌握触发器概念和应用,通过四个实验任务,逐步掌握触发器的设计和应用。 一、实验目的 掌握触发器概念和应用,熟悉触发器概念,掌握常用触发器的设计和应用。...
触发器是一种存储过程,它会在数据库中特定的数据操作(如INSERT、UPDATE、DELETE)发生时自动执行。在这个场景中,我们讨论的是如何使用触发器来记录DML操作对特定数据表的更改。 2. 数据操作语言(DML): DML...
### 数据库自动化的魔法:精通数据库触发器的使用 在当今快速发展的信息技术领域,数据库扮演着至关重要的角色。无论是小型的个人项目还是大型的企业级应用,数据库都是存储、检索和管理数据的核心系统。随着技术的...
一图胜“十”言:SQL Server 数据库总结 一个大概的总结 经过一段时间的学习,也对数据库有了一些认识。 数据库基本是由表,关系,操作组成;对于初学者首先要学的: 1.数据库是如何存储数据的 表,约束,触发器 2....
在SQL Server数据库中,触发器的使用总结: - 触发器适用于强制数据完整性规则。 - 触发器在某些场景下可以替代存储过程和触发器业务逻辑。 - 触发器通过检查和维护数据表中的行变化,确保数据的正确更新。 - 触发器...