sybase 基本语法,存储过程,触发器
来源:互联网 发布:中国2015年失业率数据 编辑:程序博客网 时间:2024/05/16 13:41
但是函数可以通过存储过程来实现,因为存储过程也是有返回值的:)
存储过程
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 基本语法,存储过程,触发器
- sybase 基本语法,存储过程,触发器
- SQLSERVER存储过程、触发器、函数、游标等基本语法
- 存储过程基本语法
- 存储过程 基本语法
- Oracle存储过程基本语法 存储过程
- oracle 存储过程基本语法
- 存储过程基本语法规则
- 存储过程基本语法规则
- oracle存储过程基本语法
- ORACLE存储过程----基本语法
- oracle存储过程基本语法
- Sql存储过程 基本语法
- 存储过程基本语法规则
- oracle 存储过程基本语法
- oracle 存储过程基本语法
- Oracle存储过程基本语法
- Oracle存储过程基本语法
- poj2117 tarjan()+割点
- [举重若轻]debian安装无线网络设置
- 常用数据库 JDBC URL 格式
- APK签名
- USB设备开发工作日志之三——对ST官方资料的认识
- sybase 基本语法,存储过程,触发器
- KMP hdu-2594 Simpsons’ Hidden Talents
- 自己写非阻塞代理服务器 proxy 之C语言版
- [举重若轻]android开发环境
- Apache配置多域名
- Mysql 5.5分区特性增强深度解析
- jQuery的Autocomplete
- 在Java中利用set特性删除重复的数组元素
- 笔记1-3: 从标准输入读取命令并执行