转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> SyBase >> 正文
用触发器还是存储过程比较好         ★★★★

用触发器还是存储过程比较好

作者:闵涛 文章来源:闵涛的学习笔记 点击数:749 更新时间:2009/4/22 23:09:44

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

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

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

 


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台