转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> SyBase >> 正文
Adaptive Server Anywhere 7.0网上培训教材         ★★★★

Adaptive Server Anywhere 7.0网上培训教材

作者:闵涛 文章来源:闵涛的学习笔记 点击数:7841 更新时间:2009/4/22 23:09:43
T unit_price FROM product WHERE id = @product_id; 
 SET @num_items = @num_items + 1; 
END LOOP loop1; 
SELECT num_items from total_temp; 
END;


分支语句:

1、改变执行流程 
2、LEAVE 
3、CALL

LEAVE:
1、结束一个过程循环 
2、要求一个语句标号 
3、语法: 
LEAVE 语句标号 
4、实例: 
SET @total = 0; 
SET @num_items = 0; 
INSERT INTO total_temp VALUES (0,0); 
loop1: 
WHILE @total < 100.00 LOOP 
 UPDATE total_temp SET num_items = @num_items; 
 IF @total > 100.0 
THEN LEAVE loop1; 
 END if; 
SET @total = @total + SELECT unit_price 
FROM product WHERE id = @product_id; 
 SET @num_items = @num_items + 1; 
END LOOP loop1; 
SELECT num_items from total_temp; 
END; 

CALL:
1、调用一个存储过程 
2、语法: 
CALL存储过程名  (参数名值 ,…); 
3、实例: 
CALL sp_sales_order (23345, 19238); 

错误处理 :

1、缺省的错误处理 
   向调用者返回出错消息 
2、例外处理 
   允许存储过程在内部处理错误 
   并不向调用者返回出错消息 
   关键词EXCEPTION 
3、ON EXCEPTION RESUME 
     用在 CREATE PROCEDURE 
     既使出现例外也允许存储过程继续运行 
   适用于大型的批作业中 
4、SIGNAL 
    人为地制造一个意外(它不是属于Adaptive Server Anywhere的一种意外状态) 
   适用于对存储过程的测试 
   语法:  SIGNAL exception-name
5、CREATE MESSAGE 
     建立一个用户定义的出错消息。 
   语法: CREATE MESSAGE message-num AS 'message text' 
6、sp_addmessage 
     增加一个包含用户定义的出错号码的用户定义消息 
    CALL sp_addmessage (error-number, ‘format-string parameters’) 
7、RAISERROR
     类似于 SIGNAL 
     此外还明确地给出并非来自数据库缺省说明中的实际出错消息 
    RAISERROR error-number, 'format-string parameters'



删除存储过程 :
1、必须是DBA或存储过程的主人 
2、语法: 
DROP PROCEDURE procedure-name; 
3、实例: 
DROP PROCEDURE myproc;

调用存储过程 :
1、在CALL语句中给出存储过程名 
参数可按名字或按位置次序来赋值 
2、语法: 
CALL procedure-name ([parameter-name =] expression, …) 
3、实例: 
CALL update_dept (123, 12300, 'Accounting', 987)


存储过程查询计划 :

1、存储过程在它第一次被执行时进行编译
2、在数据库运行时被编译好的代码和查询计划被保留在内存中 
3、在第一次执行时应确保: 
各索引已安排好 
各参数取值的数据类型要符合于用户实际的需要 

小结 :

1、存储过程中包含SQL语句及对SQL的过程化扩展.
2、存储过程可以接受参数,调用其它存储过程,返回一个状态值或参数及结果集。 
3、Adaptive Server Anywhere支持的过程化扩展包括说明语句,条件语句,循环语句,分支语句和错误处理命令。 
4、具有RESOURCE 权限的用户才能建立存储过程 
5、执行 CREATE PROCEDURE 语句,导致让 Adaptive Server Anywhere 进行语法分析并把该存储过程存入系统表SYSPROCEDURE。 
6、调用一个存储过程则导致 Adaptive Server Anywhere 从系统表中检索该存储过程,如果自数据库启动以来它是第一次被调用则对它进行编译。 


习题 :
1 用实例说明Adaptive Server Anywhere所支持的两类用于存储过程的对SQL的过程扩展语句。 
2. 说明存储过程的结构 
3. 说明存储过程输入参数与返回结果集之间的差别 
4. 建立存储过程需要有什么权力? 
5. 删去存储过程需要有什么权力? 
6. 调用存储过程需要有什么权力?


注明:存储过程方面的内容和ASE有很大的区别,这点需要特别注意!

 jazy 回复于:2003-02-24 20:18:16 触发器

目标 
1、定义触发器 
2、解释触发器的使用 
3、讨论使用触发器的优点 
4、列出并说明Adaptive Server Anywhere所支持的四类触发器 
5、Adaptive Server Anywhere所支持的两种触发器激发时机是什么? 
6、触发器的结构 
7、建立触发器 


内容 
1、触发器 
2、触发器的使用 
3、触发器的类型 
4、触发器的实现 

定义触发器
1、它是服务器方的编程,用以制约数据完整性 
2、它由SQL及流程扩展语句构成 
类似于存储过程 
3、是自动执行的 
4、与引发它的事务一起被提交或回滚的 
5、继承着该表建立者的权限 

触发器的用途 
1、利用触发器能实现: 
A>对DDL而言过分复杂的数据数据完整性规划 
B>在数据项间存在逻辑关系的业务规划 
C>自动进行数值修改 
D>审计 

制约数据完整性 
1、触发器支持 
A>声明参照完整性 
B>缺省值 
C>NOT NULL 约束 
D>CHECK 条件 
E>主键 


触发器的优点 
1、独立于客户应用对数据库的访问 
2、标准化 集中于中央位置实现各种规则 
3、高效性 编码是已编译的 
4、安全性 用户和应用无法回避触发器 


触发器的类型 
1、事件驱动的—当发生如下事件时可自动激发触发器 
插入 
删除 
更新 当任何一列被更新都激发 
列更新 仅当特定的列被更新时才激发它 

触发器作用范围和时间 
1、行级触发器 在每行之前或之后 
2、语句级触发器 在整个操作完成之后 
3、可激发同类型的多个触发器 
一下子全部激发 按特定的次序来激发 

建立触发器 
1、由组合语句构成 与存储过程具有同样的能力及特点 触发器不能包括参数和返回结果集 
2、语法 
CREATE TRIGGER trigger-name trigger-time trigger-event
FOR EACH [ROW | STATEMENT]
BEGIN
...;
...;
END

3、建立触发器的用户应具有以下权限 RESOURCE 权 对所需表的ALTER 权限 


插入型触发器 
1、实例 — 禁止增加一个已被解雇的新职员 
CREATE TRIGGER ai_employee AFTER INSERT ON employee REFERENCING NEW AS new_emp FOR EACH ROW 
BEGIN 
 IF new_emp.termination_date IS NOT NULL 
 THEN 
      RAISERROR 30000 'You cannot hire an employee you have already fired';
  END IF;
END

删除型触发器 
1、实例 — 禁止删除一个还未期满的雇员 
CREATE TRIGGER d_employee BEFORE DELETE ON employee REFERENCING OLD AS cur_emp FOR EACH ROW 
BEGIN
IF cur_emp.termination_date IS NULL 
   THEN 
     RAISERROR 30001 'You cannot delete an employee who has not been fired'; 
 END IF; 
END

更新型触发器 
1、实例 — 职员工资升不许降 
CREATE TRIGGER bu_employee BEFORE UPDATE ON employee
REFERENCING NEW AS after_update OLD AS before_update
FOR EACH ROW
  BEGIN    IF after_update.salary < before_update.salary THEN 
       RAISERROR 30002 'You cannot decrease a salary'; 
 END IF; 
 END



列级更新触发器 
1、实例 — 工资只可增加,仅当更新salary列时才激发触发器 
CREATE TRIGGER ub_empsal BEFORE UPDATE OF salary ON employee
REFERENCING NEW AS after_update OLD AS before_update
FOR EACH ROW
   BEGIN 
    IF after_update.salary <  before_update.salary 
    THEN         RAISERROR 30002 'You cannot decrease a salary';       
   END IF;

END


删去一个触发器 
1、语法 
DROP TRIGGER trigger-name 
2、实例 
DROP TRIGGER mytrigger 
3、要求对表有 ALTER 权限 



触发器的执行时机 
1、当数据库出现相应动作时自动被执行 
2、操作次序: 
BEFORE 触发器 
参照动作 
操作 
AFTER 触发器 

对ASE 触发器兼容性的考虑 
1、回滚 
   Adaptive Server Anywhere不支持触发器内的回滚 
   在ASE(或 T-SQL)的触发器中可包含回滚 
   触发器与激发该触发器的操作是原子化的,如果此触发器失败则该操作也自动失败。 
2、嵌套 
   一个触发器所执行的动作导致激发另一个触发器 
   Adaptive Server Anywhere 对嵌套层数未作明确限制 
   除非Adaptive Server Anywhere运行资源超出,ASE 给出可配置的最大限制数 缺省值是16

3、递归性
Adaptive Server Anywhere触发器可被设置为递归激发 
如果一个触发器执行动作会使本身又被激发,则导致递归激发。 
缺省情况是off 
 用IF UPDATE() 来处理递归 
在ASE 及与 T-SQL 兼容的触发器中不具有此特点 

小结 
1、触发器由SQL及流程控制语句构成 ,当触发器所检测的事件发生时自动执行该触发器。 
2、在制约复杂的完整性和一致性规则以及实现维持数据间逻辑关系的业务规划时,采用触发器是很有效的。 
3、触发器的主要优点是:标准化,高效性和安全性。 
4、有四类触发器:插入型,删除型,更新型及列级更新型。 
5、行级触发器的执行时机是在触发器操作所影响的每一行在被改变之前或其后。 
6、建立触发器用命令CREATE TRIGGER,删除触发器使用命令 DROP TRIGGER。它们都要求用户具有适当的权限。

 jazy 回复于:2003-02-24 21:08:05 备份与恢复 

目标 
1、讨论防止数据损坏的三种预防措施 
2、说明可考虑的几种备份策略 
3、标明哪些类型的故障可被Adaptive Server Anywhere恢复 
4、说明Adaptive Server Anywhere在出现校验点时都作些什么 
5、修理一个出毛病的事务日志或镜象文件 
6、恢复出现系统故障后的Adaptive Server Any

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  下一页


[聊天工具]企业邮件系统的利器----FoxMail Server  [系统软件]OPEN SERVER 5.0.5安装EXP300阵列柜
[系统软件]关于Windows2000Server的灾难恢复  [常用软件][网络]下载服务革命性风暴Poco Server评测
[C语言系列]动态创建SQL Server数据库、表、存储过程等架构信…  [C语言系列]SQL Server到DB2连接服务器的实现
[C语言系列]SQL Server到SYBASE连接服务器的实现  [C语言系列]SQL Server到SQLBASE连接服务器的实现
[C语言系列]SQL Server连接VFP数据库的实现  [C语言系列]ASP+SQL Server之图象数据处理
教程录入: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……
    咸宁网络警察报警平台