


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
触发器的用法.txt昨天是作废的支票;明天是尚未兑现的期票;只有今天才是现金,才能随时兑现一切。人总爱欺骗自己,因为那比欺骗别人更容易。Oracle数据库无自增字段,如果要实现我们可以通过触发器的方法实现Oracle数据库自动增长列的实现过程:1.创建序列- Create sequencecreate sequence INNERIDminvalue 1maxvalue 99999999999999start with 1increment by 1cache 20order;2.-INNERID.currval 指当前序列-INNERID.nextval 指下一个序列insert into admin values (INNERID.nextval,a);insert into admin values (INNERID.nextval,b);insert into admin values (INNERID.nextval,c);insert into admin values (INNERID.nextval,d);create table admin(id varchar2(20),name varchar2(10);-不断的插入序列的下一个值.3.创建触发器(注:此处无法设置id的默认值为INNERID.nextval )CREATE OR REPLACE TRIGGER admin_tg-admin id 的触发器BEFORE INSERT ON admin FOR EACH ROWBEGINSELECT INNERID.NEXTVAL INTO :NEW.id FROM DUAL;END;测试语句如下:insert into admin (username) values ( CrazyCoder.Cn);存储过程触发器:SQL存储过程和触发不能使用USE的应对方法大家都知道在SQL的存储过程,触发中不能使用USE。 怎么办呢,当然可以直接用databasename.user.tablename这样来访问,但是某些语句必须在当前数据库下执行,比 如sp_adduser等。 之前看到一篇文章,我测试了有问题。 原文: 这里提供一个解决方案: 使用Exec(ute)语句来改变当前数据库,不过要注意的是,数据库环境的更改只在Execute语句结束前有效,所以你必须把 后面的语句和Execute放到一起。Example: create proc test as exec(use pubs) exec sp_adduser test go exec test 我自己试了一下,根据下面的语句执行没有问题: 使用Exec(ute)语句来改变当前数据库。 如下: CREATE PROCEDURE cs AS BEGIN exec(use sjdbmis; select plucode from txtplu) END GO 又如: CREATE PROCEDURE cs AS BEGIN exec(use sjdbmis; exec sp_adduser test) END GO(三)sql触发器:如何在SQL Server中使用触发器触发器是一种特殊的存储过程,在使用触发器之前可以与存储过程进行比较,触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名称而被直接调用。 触发器是一种特殊的存储过程,在使用触发器之前可以与存储过程进行比较,触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名称而被直接调用。触发器主要优点如下:触发器是自动的:当对表中的数据作了任何修改之后立即被激活,触发器与数据库中的表紧密相关,比如当对表执行INSERT、UPDATE或DELETE操作时,触发器就会自动执行。触发器可以对数据库中的表进行嵌套的触发,一个触发器执行启动另一个触发器的操作,这样的嵌套可以达到32层。触发器可以强制限制,可以防止恶意或错误的 INSERT、UPDATE 以及 DELETE 操作,并强制执行比CHECK约束定义的限制更为复杂的其他限制,虽CHECK约束已经在表定义的时候建立好了,但触发器可以实现很多其它的约束限制,在约束所支持的功能无法满足应用程序的功能要求时,触发器的优点就会体现。在SQL Server中,已经包括两大类触发器:DML 触发器和 DDL 触发器。 DDL触发器为SQL Server 2005中新增的。当数据库中发生数据操作语言 (DML) 事件时将调用 DML 触发器。DML 事件包括在指定表或视图中修改数据的 INSERT 语句、UPDATE 语句或 DELETE 语句。DML 触发器可以查询其他表,还可以包含复杂的 Transact-SQL 语句。将触发器和触发它的语句作为可在触发器内回滚的单个事务对待。如果检测到错误,则整个事务即自动回滚。DDL 触发器是一种特殊的触发器,它在响应数据定义语言 (DDL) 语句时触发。它们可以用于在数据库中执行管理任务,例如,审核以及规范数据库操作。像常规触发器一样,DDL 触发器将激发存储过程以响应事件。但与 DML 触发器不同的是,它们不会为响应针对表或视图的 UPDATE、INSERT 或 DELETE 语句而激发。相反,它们会为响应多种数据定义语言 (DDL) 语句而激发。这些语句主要是以 CREATE、ALTER 和 DROP 开头的语句。DDL 触发器可用于管理任务,例如审核和控制数据库操作。了解到以上内容,我们就来看一下如何来创建一个DML触发器和一个DDL触发器。在SQL Server 2000中我们创建触发器可以通过在表名上点右键-“所有任务”-“管理触发器”来创建,然后在里面写上对应的 T-SQL 语句,也可以在查询分析器里面创建。在SQL Server
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 发动机燃烧优化方案
- 职业教育产教融合平台建设方案
- 化学品检测实验室管理规程
- 2025重庆市万州区长坪乡人民政府非全日制公益性岗位招聘1人笔试备考题库及答案解析
- 2025中国光大银行股份有限公司昆明分行社会招聘笔试模拟试题及答案解析
- 内部审计流程规范
- 市场研究分析师的市场调研方法和数据分析
- 2025兴业银行总行国际业务部交易银行部招聘考试备考试题及答案解析
- 打造个性化营销赢得市场
- 2025土地估价师考试《管理基础》模拟真题及答案
- 2025年家政服务员劳务合同范文
- 2025-2026学年高一数学上学期第一次月考试题(考试版A4)
- 建筑公司法务知识培训课件
- 2025.9.3抗战胜利大阅兵初高中学生征文(高中):观九三阅兵有感
- 2025食品安全员能力考核试题及答案附含答案
- 2025年度深圳住房租赁合同范本
- 湖南名校联考联合体2026届高三上学期第一次联考(暨入学检测)英语试题+答案
- 《创新创业基础》 课件 第1章 创新创业概述
- 商业保理考试试题及答案
- 接触网运行与检修课件
- 70周岁老人驾考三力测试题库及答案
评论
0/150
提交评论