触发器是怎么写的

1. 触发器怎么写

create or replace trigger dml_a

before insert or delete on a

for each row

as

begin

when inserting then

insert into b values(a.:new.字段1,a.:new.字段2。);

when deletint then

delete from b where b.字段=a.:old.字段;

end dml_a;

2. 触发器的写法

使用触发器TRIGGERINSERT TRIGGER触发器是由SQL语句集组成的代码块,在响应某些动作时激活该语句集.一个触发器也可被解释为特定类型的存储过程,每当动作发生时执行该存储过程:每当基础表中数据受到数据操纵语言(DML)语句-INSERT,UPDATE,DELETE的影响时,触发器就被激发.触发器的特征:1. 当任何数据修改语句发出时,它被sql server自动调用2. 在存储过程的情况下,它不能被显式地调用或执行3. 它防止了对数据的不正确,未授权的,和不一致的改变4. 它不能返回数据给用户触发器语法: CREATE TRIGGER trigger_name ON table_name [WITH ENCRYPTION] FOR[INSERT | UPDATE | DELETE] AS sql_statement幻表: 当触发器激发对INSERT,DELETE,或UPDATE语句的响应时,两个特殊的表被创建:插入表(Inserted)和删除表(deleted),示例:create trigger trgInsertRequisitonon Requistionfor insertasdeclare @VacnacyReported intdeclare @ActualVacancy intselect @ActualVacancy = iBudgetedStrength - currentStrengthfrom Position join Inserted onPosition.cPositionCode = Inserted.cPositionCodeselect @VancyReported = inserted.siNoOfVacancyfrom insertedif(@VancyReported > @ActualVacancy)begin print'The actual vacancies are less than the vacncies' rollback transactionendreturn DELETE TRIGGER1.当试图从触发器表中删除一行时,DELETE TRIGGER被触发2.使用DELETE TRIGGER触发器来实现引用完整性约束主要有三种途径: 1.串联方法:每当从主表中删除记录时,删除依赖表中的记录 2.限制方法:如果相尖记录出现在依赖表中,则限制从主表中删除记录 3.无效方法:每当一个记录从主表中删除时,把依赖表中所指列的值变为无效select * from publisher;create trigger trgfordelon publisherfor deleteas begin print '您删除的数据的内容为' select * from deletedenddelete from publisher where pub_id = 9;UPDATE TRIGGER 当一个UPADATE触发器被激发时,它使用关于其操作的两个逻辑表-包含原始行的deleted表和存储新行的insertd表.例一:create trigger trgUpdatePubon Publisherfor updateasif update(pub_id)begin print 'publisher id cannot be modified' rollback tran endè当用户试图修改pub_id列时它就激发,它因此阻止用户修改pub_id的内容并回滚整个事务例二:create trigger trgUpdateContractRecruiteron ContractRecruiterfor updateas declare @AvgPercentageCharge int select @AvgPercentageCharge = avg(siPercentageCharge) from ContractRecruiter if(@AvgPercentageCharge > 11) begin print 'The average cannot be more than 11' rollback transaction end修改触发器语法:alter trigger trigger_nameon table_name[with encryption]for[insert | delete | update]as sql_statements撤消触发器: DROP TRIGGER trigger_name[,。

n]通过触发器加强数据的完整性触发器可以用来确保和加强业务规则和数据完整性,如,只有库存中有该产品时,才可以出售,如果使用触发器,它将会对不正确的事务做检查,并确保只有有效的数据才能插入到表中.例如:某种改变违反了引用完整性,那么所有这样的改变都被拒绝,因此所有试图改变数据库中的数据都被取消. CREATE TRIGER trgUpdateDeleteON TitleAuthorFOR INSERT,UPDATEAS If (SELECT COUNT(*) FROM Titles t JOIN inserted i ON t.Title_id = i.Title_Id) = 0 BEGIN PRINT 'Invialid title ID entered' ROLLBACK END IF(SELECT (COUNT(*) FROM Authors t JOIN inserted i ON t.Au_Id = i.Au_Id) = 0 BEGIN PRINT 'INVIALID author ID eneter' ROLLBACK END多触发器: SQL SERVER允许在给定表中定义多个触发器.这意味着单个DML语句可激活两个或多个触发器.触发器以创建次序被激活.AFTER 和 INSTEAD OF 触发器 AFTER触发器在功能上,是在DML操作执行成功后.再执行的触发器. 如: create triger trgDeletetitleson TitlesAFTER DELETEAS PRINT 'DELETION SUCCESSFUL'*********************************************************************假如单个DML后有多个AFTER触发器,你可以通过使用sp_settriggerorder系统存储过程来改变这些触发器的执行次序. sp_settriggerorder,,ordervalue = FIRST | LAST | NONEè随机顺序DML-operation 指出创建触发器的DML操作.sp_settriggerorder 'trgDeleteTitles' , 'FIRST', 'DELETE'*********************************************************************INSTEAD OF 触发器 替换的触发器如: create trigger trgPublisherDeleteon publishersinstead of deleteas print 'Master records cannot be deleted!'这种触发器在一张表上只能创建一个不正确之处。

欢迎大家指正。

3. SQL触发器写法

基本语法

create trigger tri_name

on table

for insert/update/deleted

as

SQL code

例:

create trigger tri_mc(tri_mc:自定义触发器的名称)

on table (table:触发的表名)

for insert (触发类型:insert,插入数据触发 update,更新数据触发 delete,删除数据触发)

as

declare @kssj datetime (定义一个变量,做中间处理)

declare @sqbh char(40)

select @kssj = kssj,@sqbh = sqbh from inserted

(插入数据时,插入的数据在表 inserted

更新数据时,更新后的数据在表 inserted 更新前的数据在表中 deleted

删除数据时,删除的数据在表 deleted

不同的操作可以,取出不同的中间数据,做处理,例子中取出插入的数据)

update table2 set isks = 1,kksj = @kssj where sqbh = @sqbh

(根据中间处理做相应操作,例子的处理为,将插入的值同步更新到另一个表)

4. SQL触发器怎么写

--此题唯一的难度是用户名 假设用户名已保存在表CurrentUser中

--给出插入操作的触发器创建 其他类似

CREATE TRRIGER MYTR1

ON A

FOR INSERT

AS

DECLARE @UserName varchar(20)

SELECT @UserName=UserName from CurrentUser

INSERT INTO C (TableName,Type,dDate,UserName) VALUES ('A','Insert',getdate(),@UserName)

GO

5. 这个触发器怎么写

oracle 里的触发器 create or replace trigger insert_tri after insert on B for each rowdeclare begin update A set count = count-:new.count where GId=:new.GId; end insert_tri;sql 触发器 create trigger insert_tri on B after insert as update A set count = count-inserted.count where A.GId=inserted.GId。

6. 这样的触发器该怎么写

你没说什么数据库还有就是你需要的是什么触发器。

是不是insert+update 这边考虑到批量更新所有给你加了个游标。create table Member( JiFen int, ZheKou numeric(3,2))create table JiFZheK( JiBie int, XiaXian int, ShangXian int, ZheKou numeric(3,2))---生产数据insert into Memberselect '51',nullinsert into JiFZheKselect 10,1,10,0.95 union allselect 9,11,20,0.90 union allselect 8,21,30,0.85 union allselect 7,31,40,0.80 union allselect 6,41,50,0.75 union allselect 5,51,60,0.70 union allselect 4,61,70,0.65 union allselect 3,71,80,0.60 union allselect 2,81,90,0.55 union allselect 1,91,100,0.50 --触发器create trigger trig_Member on memberfor updateasbegin declare @jifen int declare @zhekou numeric(3,2) declare cur_new cursor local for select jifen from inserted open cur_new fetch cur_new into @jifen while(@@fetch_status = 0) begin select @zhekou = zhekou from JiFZheK where xiaxian <= @jifen and shangxian >=@jifen update Member set zhekou = @zhekou where jifen = @jifen fetch next from cur_new into @jifen end close cur_new deallocate cur_newend--测试update member set jifen = 52结果如下:52 .70update member set jifen = 91结果91 .50你也去测下吧。

7. 触发器的正确写法

兄弟,你这样写就好了DELIMITER $$USE `mspay`$$DROP TRIGGER /*!50032 IF EXISTS */ `tr_date`$$CREATE /*!50017 DEFINER = 'root'@'localhost' */ TRIGGER `tr_date` BEFORE UPDATE ON `dormitoryinfo` FOR EACH ROW BEGIN IF new.result='Y'THENSET new.date=NOW();END IF;END;$$DELIMITER ;。

转载请注明出处育才学习网 » 触发器是怎么写的

知识

门市出怎么写

阅读(149)

本文主要为您介绍门市出怎么写,内容包括小超市带货转让合同范本,店铺介绍怎么写,店面出租合同书怎么写。原发布者:hylc722127百货超市转让合同转让方(甲方):身份证号:顶让方(乙方):身份证号: 甲、乙双方经友好协商,就店铺转让事宜

知识

作文的的分析怎么写

阅读(182)

本文主要为您介绍作文的的分析怎么写,内容包括怎样写文章的分析,怎样写作文的审题分析,如何写作文分析。赏析的方法:一,语言特色的赏析 1,本文语言生动、优美而又亲切自然,充满文雅的书卷气,特别是多用比喻拟人的修辞手法,生动形象地表现了……

知识

学籍号怎么写

阅读(919)

本文主要为您介绍学籍号怎么写,内容包括学籍号怎么写,学籍号怎么填,学籍号证明书怎么写。学籍号由16位构成,其中各位的意义为:省市位(2位)+区县(2位)+学校类别(1位)+学校(3位)+学生类别(1位)+届别(2位)+班(

知识

填空的空怎么写

阅读(201)

本文主要为您介绍填空的空怎么写,内容包括空着的怎么写填空谢谢,填空1的所有空怎么写给好评给好评给好评,(填空)下面的空怎么填——I&#39;dlove.Thanksa.and。读:[ kòng ]二、空[ kòng ]的释义:1.使空,腾出来:~一个格。~出一间房来。2.闲着,没被

知识

会计评价怎么写

阅读(230)

本文主要为您介绍会计评价怎么写,内容包括会计对自己的评价怎么写,会计专业的自我评价怎么写,会计自我评价怎么写。会计简历自我评价1本人能吃苦耐劳,责任心强、工作扎实, 性格开朗,工作稳健、工作细致、务实,保密意识强,积极主动完成本职工作,学

知识

一下英语怎么写

阅读(151)

本文主要为您介绍一下英语怎么写,内容包括1至100的英文怎么写,1到100用英语怎么写,130用英语怎么写。1至100的英文写法:1-20:1 one。2 two。3 three。4 four。5 five。6 six。7 seven。8 ei

知识

若的韩文怎么写

阅读(152)

本文主要为您介绍若的韩文怎么写,内容包括若用韩文怎么写,若用韩文怎么写,若韩文怎么写。若 1 →[般bō若] 若 2 ━A) …과 같다.危若朝露; 위태롭기가 아침 이슬과 같다欣喜若狂; 미친 듯이 기뻐하다 ━B)

知识

u的笔顺怎么写的

阅读(257)

本文主要为您介绍u的笔顺怎么写的,内容包括字母u的笔顺怎么写,u字母的笔顺怎么写,英文U的写法和小写一样吗。E的正确笔顺写法如下:

知识

10日英语怎么写

阅读(210)

本文主要为您介绍10日英语怎么写,内容包括10月10日英文怎么写,英语9月10日怎么写,10月10日英语怎么说。通常有两种写法,美国写法和英国写法.1.美国写法:September 10th(格式:月-日)。2.英国写法:10th Septembe

知识

芬芳的芳怎么写

阅读(177)

本文主要为您介绍芬芳的芳怎么写,内容包括芬芳的芳繁体字怎么写,芬芳的芳,怎么组词,芬芳的芳能组什么词。芬芳、芳名、幽芳、芳馨、芳年、芳菲、芳容、芳邻、芳龄、流芳、芳泽、芳心、声芳、涧芳、芳魂、碎芳、瑶芳、残芳、芳词、芳羞、芳

知识

语文建议怎么写

阅读(279)

本文主要为您介绍语文建议怎么写,内容包括给语文老师的建议怎么写六年级,对语文老师的评价和建议怎么写,写关于语文课上的建议。要突出语文这个科目,写出语文老师身上的优点以及对你的影响。1 语文老师授课的方式非常适合我们,他根据本课程知

知识

学生怎么写转学

阅读(533)

本文主要为您介绍学生怎么写转学,内容包括小学生的转学申请应该怎么写,家长怎么写转学申请书[小学一年级学生],转学申请怎么写啊。学生因家庭住址及户口迁移而确需转学到城区市内他校就读的,由学生家长(或监护人)提出申请, 班主任签字后,学校教

知识

酒吧的总结怎么写

阅读(199)

本文主要为您介绍酒吧的总结怎么写,内容包括酒吧员工总结怎样写,酒吧上月的工作总结与心得怎么写,酒吧吧员工作总结怎么写。转眼之间又要进入新的一年-20XX年了,新年要有新气象,在总结过去的同时我们要对新的一年一个好的计划。到可可一年多

知识

请帖长辈怎么写

阅读(378)

本文主要为您介绍请帖长辈怎么写,内容包括写给长辈的请柬怎么写,给家中长辈结婚请帖怎么写,结婚请帖同事长辈领导称呼怎么写结婚必学。婚礼请柬中对长辈的称呼 妈妈的兄弟尊舅台妈妈的姐夫尊姨丈老婆的父亲尊岳父老婆的妈妈尊岳母爸爸的姐

知识

看着是怎么写

阅读(184)

本文主要为您介绍看着是怎么写,内容包括斜着看的词语怎么写,看着图片来写一段话,看着老师我们写句子。给你提供一些写作的方法,希望对你有所帮助:细观察细致观察是提高写作水平的金钥匙。文章是客观事物在作者头及中反映的产物,要反映客,不必须

知识

福的英语是怎么写的

阅读(206)

本文主要为您介绍福的英语是怎么写的,内容包括请问,福,字的英语怎么写,请问,福,字的英语怎么写,福用英语怎么写。福fú 中文解释 - 英文翻译 福的中文解释 以下结果由汉典提供词典解释 部首笔画部首:礻 部外笔画:9 总笔画:13五笔86:PYGL

知识

项目申报是怎么写的

阅读(189)

本文主要为您介绍项目申报是怎么写的,内容包括项目申报书怎么写,如何写项目申报指南,项目申请书如何写。目申报须知申报应具备的条件(一)申报单位应具备的条件 1.已登记注册,具有独立法人资格的企事业单位;2.具有项目实施的工作基础、人才条件

知识

证事是怎么写

阅读(139)

本文主要为您介绍证事是怎么写,内容包括怎样写证明证明确有此事,亲属关系证明怎么写,身份证的格式是怎么写的。标题。一般把所要证明的主要内容作为标题。如"关于*受贿情况的证明。"不要只写"证明材料"或"证明信"、"证明书",因为这会给对方单位以后

知识

尴尬是怎么写的

阅读(273)

本文主要为您介绍尴尬是怎么写的,内容包括一件尴尬的事作文开头怎么写,作文这一刻真尴尬的开头怎么写,一件尴尬的事作文开头怎么写。1. 每个人都会有尴尬的时候,歌唱家的尴尬是在唱歌的时候跑调;厨师的尴尬是炒菜的时候把糖当成盐放错;老师的

知识

烧包是怎么写

阅读(543)

本文主要为您介绍烧包是怎么写,内容包括七月半烧包怎么写,七月半烧包包怎么写,七月半烧包,究竟包怎么写。这里每年的七月半鬼节都要写封包,烧给死去的亲人,这种包袱是祭祀逝去的亲人用的。包好后一烧,就算把钱寄出去了,就像邮局寄包裹一样,只不

知识

积累是怎么写的

阅读(163)

本文主要为您介绍积累是怎么写的,内容包括积累什么的作文怎么写,以积累为题的作文怎么写,小学六年级的积累本怎么写啊。“为什么季羡林先生可以当大学教授?”“因为他学问高积累得多。”每回问这种问题,几乎得到的都是这种回答。 但不得不承

知识

语文日记是怎么写的

阅读(158)

本文主要为您介绍语文日记是怎么写的,内容包括小学语文日记怎么写,日记要怎么写呢,三年级上册语文怎么写日记。日记就是把你一天中认为有意义的事写下来。当然一天中可能你做了许多事,有些事可以一笔带过,甚至不写,比如吃饭、洗漱之类的,有些重

[/e:loop]