`
wang_zhi_peng2007
  • 浏览: 249213 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sybase存储过程基础

 
阅读更多

总结一下sybase存储过程和触发器的一些基本特点。
sybase据说在12.xx以后支持自定义function了,但是在Adaptive Server Enterprice版本中似乎不行,
但是函数可以通过存储过程来实现,因为存储过程也是有返回值的:)

存储过程
sybase的存储过程语法基本上与sqlserver相似

变量名需要前面加上@,比如@ABC
每行行末不需要分号(;)
基本函数什么的与sqlserver很接近,但有个烦人的charindex(字符查找函数)不一样,没有
开始查找位置的参数:(,只能自己来实现了。

1.基本结构
CREATE PROCEDURE 存储过程名字
    @参数1 VARCHAR(100), //输入参数
    @参数2 INT, //输入参数
    @参数3 INT OUTPUT //输出参数
as
declare
@变量1 INT;
@变量2 DATE;
BEGIN
xxxx
END

2.SELECT INTO STATEMENT
这个似乎不支持,那只能用游标来实现了
将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条
记录
例子:
BEGIN
SELECT col1,col2 into @变量1,@变量2 FROM typestruct where xxx;
END;

3.IF 判断
IF @V_TEST=1
BEGIN
     do something
END

4.while 循环
WHILE @V_TEST=1
BEGIN
XXXX
END

5.变量赋值
set @V_TEST = 123
select @V_TEST = 123
6.使用cursor
...
as
declare cur_name CURSOR for SELECT * FROM xxx(表名,在触发器中可以是inserted,deleted)
BEGIN
open cur_name
fetch cur_name into xxx,xxx...
   begin
    set @V_SUM =@xx+@yy
   end
END


2.关于sybase触发器
sybase 不支持行级触发器,只能是语句级的,sqlserver也不支持,oracle和mysql是支持的(通过for each row)。
行级比如就是执行insert into xxx select * from xxx类似语句的时候,每插入一行调用一次触发器

语法:
create trigger trigger_name on 绑定的表 for insert|update|delete
as
declare 声明变量
begin
xxx
end

因为不支持行级,可以通过游标来达到相同的目的,就是有点麻烦,比如:

create trigger t1_trigger on t1 for insert
as
declare cur_ins CURSOR for select name from inserted
declare @name varchar(200)
begin
print 'fired ...'
open cur_ins
fetch cur_ins into @name
while @@sqlstatus=0
begin
   print @name
   fetch cur_ins into @name
end
close cur_ins
end

如果表t1一条语句插入多行,那么name就被打印多次。

分享到:
评论

相关推荐

    Sybase数据库基础知识

    存储过程是一组预编译的SQL语句,可以封装在一起执行,提高效率并减少网络通信。触发器是数据库自动执行的代码段,通常在数据更改(如INSERT、UPDATE或DELETE)时触发。 6. **备份与恢复** Sybase提供了多种备份...

    MySQL存储过程实例教程

    此存储过程简单展示了如何接收一个输入参数并将其值作为结果返回,是理解存储过程参数传递机制的基础。通过此类实践,开发者能够更深入地掌握MySQL存储过程的创建与调用技巧,进一步提升数据库应用程序的性能与安全...

    sybase基础过程sql

    sybase的一个存储过程样例,供大家参考

    Sybase存储过程生成工具的设计与实现 (2004年)

    本文详细介绍了Sybase存储过程的组成要素,并探讨了如何设计和实现一个用于生成存储过程的工具。 ### Sybase存储过程的基本组成 Sybase存储过程是由SQL语句和控制流语句组成的集合。这些语句按照特定的语法规则...

    sybase基础知识

    安装过程包括下载Sybase安装包,通过控制台命令进行安装,并配置相关的环境变量,如SYBASE、SYBROOT等。安装完成后,还需要创建数据库实例和初始化数据库。 三、Sybase SQL语言基础 SQL是与Sybase交互的主要语言。...

    sybase基础知识---入门必备

    - **可编程数据库**:通过存储过程,用户可以创建自己的数据库子例程,预编译后的存储过程提升了查询速度。 - **事件驱动的触发器**:触发器可以保证数据库完整性,通过触发另一存储过程来响应特定事件。 - **多...

    存储过程脚本

    为了理解并使用这些存储过程,你需要具备SQL语言基础,了解如何在Sybase环境中创建、修改和执行存储过程。此外,对于与Web服务相关的存储过程,你还需要熟悉Web开发的相关概念,如HTTP协议、SOAP或RESTful API等。 ...

    Sybase基础教程.

    【内容摘要】:本教程涵盖了Sybase的基础知识,包括数据库设备与存储空间管理、数据库与事务日志、安全性与用户管理、备份与恢复、T-SQL语言、数据库编程及用户管理基本概念等。第一讲主要介绍了Sybase的客户/服务器...

    sybase基础ppt文档

    本PPT文档是针对Sybase的基础教程,旨在帮助初学者理解和掌握Sybase的核心概念、SQL语法以及存储过程的使用。 **一、Sybase概述** 1. **历史与背景**:Sybase成立于1984年,最初专注于提供数据库服务,后来被 SAP ...

    sybase基础教程

    6. **数据库编程基础**:涵盖存储过程、触发器等高级数据库编程概念,以实现更复杂的业务逻辑。 7. **SYBASE数据库用户管理基本概念**:进一步讲解用户管理的细节,包括角色、权限继承和访问控制。 通过这个系列的...

    SYBASE数据库基础.pdf

    - sybsystemprocs数据库:存储系统过程和系统函数。 深入学习这些系统数据库的结构和用途,对于理解和维护SYBASE环境至关重要。 本课程将继续深入探讨SYBASE的更多高级主题,如SQL语法、表和索引、备份与恢复策略...

    DB2编程基础要点 sql 存储过程

    DB2编程基础要点主要涉及SQL语句的使用和存储过程的创建。在DB2数据库管理系统中,编程工作是一项核心任务,对于数据的增删改查和处理流程的自动化至关重要。 首先,创建存储过程时,必须注意语法的严谨性。在使用`...

    SYBASE数据库基础[归类].pdf

    SYBASE数据库是由一系列组件构成的,包括但不限于数据库服务器、数据库文件、日志文件、系统表和存储过程等。数据库服务器是处理数据请求并管理数据库的软件;数据库文件存储实际的数据;日志文件记录了所有对数据库...

    sybase基础教程(包含四本电子书)

    另外,了解性能监控和调优也是重要的技能,包括索引设计、查询优化、存储过程的编写等。 6. **安全性与权限**: Sybase提供了细粒度的权限控制,理解用户、角色和权限的概念对于保护数据库安全至关重要。 7. **...

    Sybase基础教程.doc

    三、存储过程 22 四、触发器 24 五、游标 25 六、事务——维持数据一致性和恢复 26 第八讲 SYBASE数据库用户管理基本概念 27 一、SQL SERVER注册用户和数据库用户 28 二、SQL SERVER数据库用户分类 28 三、别名...

    SYBASE数据库基础[参照].pdf

    除了上述内容,学习SYBASE数据库还需要了解数据类型、表结构、索引、视图、触发器、存储过程、事务处理、备份与恢复、安全性及性能调优等。掌握这些知识后,开发者能够有效地设计、实施和维护SYBASE数据库,确保应用...

Global site tag (gtag.js) - Google Analytics