中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > Sybase > 综合技术
用触发器还是存储过程比较好
作者:未知 时间:2005-09-13 19:07 出处:ChinaUnix.net 责编:chinaitpower
              摘要:用触发器还是存储过程比较好

我想问一下:
我们公司的客户录错了数据需要修改编码(这些东西在程序里边是不能直接修改的),需要通过数据库来修改,但是会关联到别的表的数据的修改。我想问一下高手:用触发器还是存储过程比较好。请各位帮忙看一下。

 Blackrose 回复于:2003-03-07 23:43:51
触发器也不过是一种特殊的存储过程,只要能解决问题,都无所谓了。

 流浪着的鱼 回复于:2003-03-08 13:02:43
怎么说呢触发器是你定义的对数据库执行某些操作时才会触发的一些操作,
而存储过程是你定义的一些特定操作在你想用的时候去执行它,看你自己的需要选择啦个人,孰优孰劣好象不好说喔,看个人喜欢喽

 learningunix 回复于:2003-03-08 13:14:46
那个性能比较好一些

 Blackrose 回复于:2003-03-08 13:42:26
应该只是应用的层面不一样
跟性能没有太多关系!

 learningunix 回复于:2003-03-08 14:19:16
麻烦您给介绍一下吧!好吗?

 learningunix 回复于:2003-03-09 18:40:38
哪为老兄能给小弟写一个简单的例子
在存储过程中实现修改一张表时触发修改其它表中的关联字段
谢谢了

 红豆妹妹 回复于:2003-03-10 08:46:02
触发器是一个存储过程,当它创建的表被修改时触发(自动执行)。
触发器能够实现所有的参照完整性需求。
和约束相比,优点有:灵活;最适用于当商业规则不能用参照约束表达时,例如级联修改或删除。

 Blackrose 回复于:2003-03-10 19:33:39
基本上就这些了

如果要讲讲触发器,最好自己看看书。
书才是我们最好的老师!!!!

 learningunix 回复于:2003-03-11 20:09:59
哪位老兄能给小弟写一个简单的例子 
在存储过程中实现修改一张表时触发修改其它表中的关联字段 
谢谢了

 learningunix 回复于:2003-03-13 12:32:31
请高手帮忙举个例子吧!

 learningunix 回复于:2003-03-13 13:06:16
帮帮忙吧!
这么多天了都

 红豆妹妹 回复于:2003-03-13 13:39:55
create trigger trg_i_bmzhb
on bmzhb
for insert
as
   update test set a.id=b.nid from test a,bmzhb b where a.id=b.oid
   update tmphxk set a.id=b.nid from tmphxk a,bmzhb b where a.id=b.oid



这时往表bmzhb中insert数据时,表tes、tmphxk会把符合条件的id修改。
(这是修改test、tmphxk表中的错误编码D)

 learningunix 回复于:2003-03-13 20:04:23
红豆妹妹,你好!我是想问如果用存储过程的话怎么解决?
触发器我已经搞定了

 learningunix 回复于:2003-03-13 21:21:16
帮帮忙呀!

 learningunix 回复于:2003-03-14 11:36:36
请各位帮忙看一下

 learningunix 回复于:2003-03-15 22:23:02
请各位帮忙看一下!

 jazy 回复于:2003-03-16 12:11:47
我觉得存储过程和触发器都是在服务段执行的批语句(可能这样说有点不恰当),但是触发器故名思意是被触发执行的,这点由数据库可以保证它被适时地被触发,而存储过程是需要你主动去掉用的。两者不可互相替代!

 jazy 回复于:2003-03-16 12:13:55
不好意思,回错贴了!

你还有什么疑问?

 learningunix 回复于:2003-03-16 20:14:14
自己再顶一下!
请各位帮忙看一下
谢谢

 jazy 回复于:2003-03-16 20:28:53
还有什么疑问,别光顶不说阿!!

 learningunix 回复于:2003-03-16 21:06:04
想让给举一个例子
就是在存储过程中实现类似触发器的功能
不知可否

 jazy 回复于:2003-03-16 21:16:18
不可以!

因为触发器是在对表修改是自动触发执行!

但存储过程则不会自动触发,当然你是可以在触发器中调用存储过程去完成操作,不过那是另外一回事!

你要明白,他们是两种概念!不可混了!各有各的用处!

 learningunix 回复于:2003-03-16 21:36:17
我知道呀!
我是说在存储过程中写一些SQL语句,判断修改表的时候关联修改其他的表,是不是有这个必要

 jazy 回复于:2003-03-16 22:05:44
这个没必要了,在触发器里本身就可以完成
不知道我是不是理解了你的意思!

 learningunix 回复于:2003-03-16 22:29:08
触发器不是比存储过程占的资源多吗

 learningunix 回复于:2003-03-24 16:57:15
最后再问高手一下:

能不能用存储过程实现表的关联修改?如果可以的话,是不是很麻烦?数据量很大时,性能怎么样?

谢谢了!谢谢了!

 learningunix 回复于:2003-03-25 12:38:36
高手

 learningunix 回复于:2003-03-25 15:01:46
help me !!

 learningunix 回复于:2003-03-26 15:55:00
help me !!

 learningunix 回复于:2003-03-26 16:49:08
能不能用存储过程实现表的关联修改?如果可以的话,是不是很麻烦?数据量很大时,性能怎么样?

 learningunix 回复于:2003-03-27 12:52:03
能不能用存储过程实现表的关联修改?如果可以的话,是不是很麻烦?数据量很大时,性能怎么样?

 learningunix 回复于:2003-03-27 14:33:08
能不能用存储过程实现表的关联修改?如果可以的话,是不是很麻烦?数据量很大时,性能怎么样?

 learningunix 回复于:2003-03-28 13:05:56
能不能用存储过程实现表的关联修改?如果可以的话,是不是很麻烦?数据量很大时,性能怎么样?

 learningunix 回复于:2003-03-31 11:55:23
能不能用存储过程实现表的关联修改?如果可以的话,是不是很麻烦?数据量很大时,性能怎么样?

再次请教高手看一下:
没有人问,只好自己往前提了!

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有