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)       Convertdata_type[(length)],expression[,style])返回值的转化

4.       在存储过程中定义变量

可以定义全局变量(@@)或定义局部变量(@

Declear @z1 int,@z2 varchar(20)

        

游标的使用

游标是一个存储查询结构集的对象,定位结果集中的某一行,并执行某一特定操作。

1.       游标的申明:

Declear cursor_name CURSOR[some options] FOR select_statement

2.       打开游标

Opencursor_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触发器:在,createalter drop语句之后触发

2.       DML触发器:在insertupdatedelete语句执行之后或执行时触发

定义触发器:

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

posted @ 2009-04-28 14:51  zx  阅读(168)  评论(0)    收藏  举报