CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

急用,什么叫存储过程和触发器,立即给分

楼主shipatrioc(风吹雨打哗啦啦)2001-12-23 13:01:36 在 C/C++ / C语言 提问

谢谢 问题点数:82、回复次数:4Top

1 楼LXJ2001(lxj)回复于 2001-12-23 13:15:42 得分 28

存储过程是一个函数或一个过程,由SQL语句及其扩展构成,它在数据库服务器上执行。  
  触发器是定义在表上的一些SQL语句,但条件满足时它就开始执行。条件就是如往一张表插入、删除、修改记录时。  
  所以存储过程的执行需要你的调用。触发器只要条件满足他就执行,不需要你的调用。Top

2 楼ldy(罗大佑)回复于 2001-12-23 13:29:26 得分 27

创建触发器,触发器是一种特殊的存储过程,在用户试图对指定的表执行指定的数据修改语句时自动执行。Microsoft®   SQL   Server™   允许为任何给定的   INSERT、UPDATE   或   DELETE   语句创建多个触发器。  
   
  语法  
  CREATE   TRIGGER   trigger_name    
  ON   {   table   |   view   }    
  [   WITH   ENCRYPTION   ]    
  {  
          {   {   FOR   |   AFTER   |   INSTEAD   OF   }   {   [   INSERT   ]   [   ,   ]   [   UPDATE   ]   }  
                  [   WITH   APPEND   ]  
                  [   NOT   FOR   REPLICATION   ]  
                  AS  
                  [   {   IF   UPDATE   (   column   )  
                          [   {   AND   |   OR   }   UPDATE   (   column   )   ]  
                                  [   ...n   ]  
                  |   IF   (   COLUMNS_UPDATED   (   )   {   bitwise_operator   }   updated_bitmask   )  
                                  {   comparison_operator   }   column_bitmask   [   ...n   ]  
                  }   ]    
                  sql_statement   [   ...n   ]    
          }    
  }    
   
  Top

3 楼ldy(罗大佑)回复于 2001-12-23 13:31:26 得分 27

存储过程可以使得对数据库的管理、以及显示关于数据库及其用户信息的工作容易得多。存储过程是   SQL   语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。  
   
  存储过程可包含程序流、逻辑以及对数据库的查询。它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。    
   
  可以出于任何使用   SQL   语句的目的来使用存储过程,它具有以下优点:    
   
  可以在单个存储过程中执行一系列   SQL   语句。  
   
   
  可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。  
   
   
  存储过程在创建时即在服务器上进行编译,所以执行起来比单个   SQL   语句快。   Top

4 楼ldy(罗大佑)回复于 2001-12-23 13:33:51 得分 0

//更新质量指标代码时  
  drop   trigger   updQuality;  
  create   trigger   updQuality   on   quality_index  
  for   update   as    
  if   update   (quality_code)  
  update   product_quality   set   quality_code   =   (select   inserted.quality_code   from   inserted)  
  where   product_quality.quality_code   =   (select   deleted.quality_code   from   deleted);  
  //删除质量指标代码时  
  drop   trigger   delQuality;  
  create   trigger   delQuality   on   quality_index  
  for   delete   as    
  delete   from   product_quality   where   quality_code   =   (select   deleted.quality_code   from   deleted);  
  //插入质量指标代码时  
  drop   trigger   insQuality;  
  create   trigger   insQuality   on   quality_index  
  for   insert   as    
  insert   into   product_quality  
  select   product_code,(select   inserted.quality_code   from   inserted),0   from   product;Top

相关问题

  • 关于存储过程和触发器!
  • 存储过程与触发器?
  • 触发器和存储过程
  • 触发器改成存储过程
  • 存储过程及触发器+错误
  • 触发器中调用存储过程?
  • 触发器和存储过程
  • 存储过程和触发器的疑问,高分回赠,谢谢各位大哥!
  • 谁能介绍本书!!关于Oracle9写触发器和存储过程的!!40分悬赏!!
  • 高分求得一个解决方案,可能跟存储过程和触发器有关

关键词

  • 存储过程
  • 语句
  • 执行
  • 数据库
  • 代码
  • 质量
  • 用户
  • code
  • sql
  • 触发器

得分解答快速导航

  • 帖主:shipatrioc
  • LXJ2001
  • ldy
  • ldy

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo