sql server 学习笔记1
存储过程
数据库服务器的T-SQL程序集,编译后存储在数据库服务器端。存储过程的有点:执行速度快,网络通信量少,多次调用,安全性高。SQL-SERVER中将存储过程分为3类分别为:用户存储过程,系统存储过程(sp_前缀),扩展存储过程。
语法:create proc procedure_name[:numver][{@parameter data_type}[varying][=default][output][…][whith{recompile|encryption|recompile,encryption}]][for replication]as sql_statement[…n]
1. 带参数的存储过程
创建:如:create procedure proc_name @p1 varchar(10),@p2 varchar(10) as begin sql_statement End
执行:exec proc_name ‘11’,’11’ or exec proc_name @p2=’11’,@p1=’11’
2. 带默认参数,返回参数的存储过程
创建:如::create procedure proc_name @p1 varchar(10)=’11’,@p2 varchar(10), @p3 int output as begin sql_statement End
执行:declear @p int
Exec proc_name@p2=’11’,@p output
3. 带返回值的存储过程
1) Return 语句返回值
2) Convert(data_type[(length)],expression[,style])返回值的转化
4. 在存储过程中定义变量
可以定义全局变量(@@)或定义局部变量(@)
Declear @z1 int,@z2 varchar(20)
游标的使用
游标是一个存储查询结构集的对象,定位结果集中的某一行,并执行某一特定操作。
1. 游标的申明:
Declear cursor_name CURSOR[some options] FOR select_statement
2. 打开游标
Open(cursor_name)
3. 读取游标
Fetch[NEXT|PRIOR|FIRST|LAST] INTO @p1,@p2
FETCH_STATUS,0-命令成功执行,-1-到达最后,-2-数据不存在
4. 关闭游标
Close cursor_name
5. 释放游标
Deallocate cursor_name
触发器学习
触发器是一种特殊类型的存储过程,它在插入,删除及修改特定表中的数据时触发执行
1. DDL触发器:在,create,alter 和 drop语句之后触发
2. DML触发器:在insert,update和delete语句执行之后或执行时触发
定义触发器:
1.DML触发器的定义:Create trigger[schema_name.]trigger_name on {table|view} [with <dml_trigger_option>[…n]]{for|after|instead of} {[insert][,][update][,][delete]}[with append][not for replication] as {sql_statement}
如:create trigger insertTo on [user] after insert as print 'you insert one record into table user'
2.DDl触发器的定义:
Create trigger trigg_name on {all_server|database}{for|after}{event_type|event_group}
As {sql_stement}
Event_type:Drop_table,Alter_table

浙公网安备 33010602011771号