社区
MS-SQL Server
帖子详情
什么时候该考虑用触发器?什么时候该考虑存储过程?
123for
2001-12-30 11:35:45
什么时候该考虑用触发器?(50分)
什么时候该考虑存储过程?(50分)
...全文
156
9
打赏
收藏
什么时候该考虑用触发器?什么时候该考虑存储过程?
什么时候该考虑用触发器?(50分) 什么时候该考虑存储过程?(50分)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wyarrant
2001-12-30
打赏
举报
回复
触发器更强调两个事物的相关性
并且设定之后就可以不再理会其具体发生情况
存储过程的逻辑性更强一些
在程序中或在其他的对象中调用存储过程
pxq
2001-12-30
打赏
举报
回复
当同时插入多条数据记录时,只产生一次触发.所以使用触发器时,要考虑到这点.
dotnba
2001-12-30
打赏
举报
回复
触发器常常用于强制业务规则和数据完整性。
jasmine
2001-12-30
打赏
举报
回复
触发器当然是可以回滚的,从逻辑上讲当某张表发生异动必然会产生某事时,就用trigger,存储过程只不过是一堆sql .
tommychim
2001-12-30
打赏
举报
回复
触发器是不能回滚的,如果仅要求保证两个或更多的表的一致性,最好用触发器。
比如,在A表插入一条记录,B表也要有相应的记录存在
其他的情况还是考虑用存储过程的好
gnzhao
2001-12-30
打赏
举报
回复
触发器时对某一个动作相应的处理,我们定义好以后不能直接调用,只能后台触发。举个例子来说“守株待兔”,农民是触发器一旦有兔子撞上来(动作),农民可以把它捡起来。系统就是农民,该农民做什么怎么作都由我们编程决定。触发器和触发触发器动作在同一个事务中执行。如果有一个没完成就回滚。
存储过程是完全要靠我们来实现的,手工调用 。做某件事步骤123。我们就把步骤123用sql语句写出来。当我们调用该存储过程时步骤123就执行一遍。
这些东西看来你得好好找本书看看了
蓝天
2001-12-30
打赏
举报
回复
触发器是为了及时捕捉数据的变化
存储过程是执行一批操作
tommychim
2001-12-30
打赏
举报
回复
那你去看transact-sql中关于procedure和trigger的帮助吧
123for
2001-12-30
打赏
举报
回复
二者的目的是什么?
SQL面试题目汇总.pdf
触发器
的作用?什么是
存储过程
?用什么来调用?索引的作用?和它的优点缺点是什么?什么是内存泄漏?维护数据库的完整性和一致性,你喜欢用
触发器
还是自写业务逻辑?为什么?什么是事务?什么是锁?什么叫视图?游标是什么?为管理业务培训信息,建立3个表:NULL是什么意思?什么是索引?SQL Server 2000里有什么类型的索引?什么是主键?什么是外键?什么是
触发器
?SQL Server 2000有什么不同类型的
触发器
?对一个投入使用的在线事务处理表格有过多索引需要有什么样的性能
考虑
?你可以用什么来确保表格里的字段只接受特定范围里的值?什么是相关子查询?如何使用这些查询?经验更加丰富的开发人员将能够准确地描述这种类型的查询。 相关子查询是一种包含子查询的特殊类型的查询。查询里包含的子查询会真正请求外部查询的值,从而形成一个类似于循环的状况。您如何确一个带有名为Fld1字段的TableB表格里只具有Fld1字段里的那些值,而这些值同时在名为TableA的表格的Fld1字段里?你能向我简要叙述一下SQL Server 2000中使用的一些数据库对象吗?游标:是对查询出来的结果集作为一个单元..
实验六-
触发器
实验报告.doc
实验五
触发器
实验报告 [实验目的] 1. 理解Oracle
触发器
的种类和用途 2. 掌握行级
触发器
的编写 [预备知识] 1. PL/SQL程序设计 [实验原理] 1. 建立
触发器
CREATE [OR REPLACE] TRIGGER <
触发器
名> BEFORE"AFTER INSERT"DELETE"UPDATE OF <列名> ON <表名> [FOR EACH ROW] WHEN (<条件>)
ON 子句中的名称识别与数据库
触发器
关联的数据库表
触发器
事件指定了影响表的 SQL DML 语句 ( INSERT、 DELETE 或 UPDATE) AFTER 指定了
触发器
在处理完成后触发 BEFORE 指定了
触发器
在处理完成前触发 默认情况下,
触发器
每个表触发一次 FOR EACH ROW 选项指定
触发器
每行触发一次(即
触发器
为行级
触发器
) 要使
触发器
触发,WHEN 子句中布尔型表达式的值必须判定为 TRUE 可以将 REPLACE 添加到 CREATE 语句以自动删除和重建
触发器
2. 行级
触发器
中引用表数据 在行级
触发器
中,使用伪记录来表示旧数据:old和新数据:new 引用示例::new.customer_name, :old.customer_name 3. 行级
触发器
中的谓词 在一个多条件触发的
触发器
中,使用谓词可以区分当前触发的操作的类型:inserting, updating,deleting。 示例: IF Inserting THEN 语句 ; END IF; IF Updating THEN 语句 ; END IF; IF Deleting THEN 语句 ; END IF; 4.
触发器
的限制 SELECT 语句必须是 SELECT INTO 语句或内部游标声明。 行级
触发器
不可以对触发表进行查询,包括其调用的子过程中。 不允许 DDL 声明和事务控制语句 。 如果由
触发器
调用存储子过程,则存储子程序不能包括事务控制语句 。 :old 和 :new 值的类型不能是 LONG 和 LONG RAW。 [实验内容] 1. 给Customer表增加一列Savings,类型为int,来存放每个顾客的存款总额。 ALTER TABLE customer ADD (saving varchar2(30)); select * from customer; 2. 更新Customer表,使得Savings字段的值正确。 3. 在Account表上增加一个行级
触发器
,当对account的balance进行update和insert一个 记录时同步修改Customer的Savings字段,保证数据的一致性。 4. 对account进行update操作,记录account表和customer表的变化。 5. 去掉顾客- 存款账号表中引用account表的外键约束(如果不去掉,后面的操作无法实现。当然最 佳的方法是修改其外键约束的更新策略,但
考虑
到复杂性,这里使用不标准的做法, 但建议大家实际运用中不要这么做)。在顾客- 存款账号表插入一条记录,表明顾客开设了一个新的账户。 6. 将一条刚才新开账户号的存款记录插入账号表,记录account表和customer表的变化。 [实验总结] 1. 实验中遇到的问题和解决的方法。 ----------------------- "触发事件 ":old ":new " "Insert "无定义,所有字段都是N"该语句完成后插入的值 " " "ULL " " "Update "更新前该行的旧值 "更新后该行的值 " "Delete "删除前该行的值 "无定义,所有字段都是N" " " "ULL "
赵强老师:Oracle数据库从10g到11g(5)过程、函数和
触发器
学习并掌握使用PL/SQL程序开发Oracle数据库的
存储过程
、存储函数和
触发器
;并掌握如何在Java程序中调用
存储过程
、存储函数。
数据库课程设计-学生选课系统(数据库脚本+引索+
触发器
+报告).zip
通过企业管理器或是查询分析器实现各个二维关系(建议最好用SQL代码实现),要求建立相关的索引: (1)根据系统功能需求设计相应的查询视图 (2)要求根据系统功能需求建立
存储过程
(3)根据功能需求建立相应的
触发器
以保证数据的一致性 (4)通过建立用户和权限分配实现数据库一定的安全性,
考虑
数据库的备份与恢复(此内容选作) 使用的是sql server2000数据库进行完成。仅供参考学习使用
基于Mysql的数据库大作业,可用作课程设计,辅助毕业设计等
项目为水果销售系统,已完成相关需求分析,包含E-R图和数据流图,关系模式已给出,使用MySQL建库建表,确保建表符合第三范式要求,表间约束合理,表字段有具体实际含义,初步验证安全性约束和完整性约束,包含视图和查询,包含
存储过程
的创建,创建日志
触发器
,不包含主从表增删改的触发操作(该步可在建表时使用级联关系就行操作),该项目未
考虑
。可用作相关课程作业及设计要求。 希望该文档能够为您的学习提供帮助,谢谢。 内容有待改善,如有其他需求或相关建议可私聊!
MS-SQL Server
34,589
社区成员
254,589
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章