预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共44页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

SQLSERVER2000中文版 入门与提高 主讲:王玮第十八章存储过程和触发器存储过程和触发器的功能和特点 创建存储过程 修改存储过程 删除存储过程 存储过程概述·允许模块化编程,增强代码的重用性和共享性 ·使用存储过程可以加快程序的运行速度. ·使用存储过程可以减少网络流量。 ·存储过程可以提高数据库的安全性。 1、系统存储过程 2、用户存储过程 3、临时存储过程 4、扩展存储过程 5、远程存储过程系统存储过程是由系统提供的过程,可以作为命令直接执行。系统存储过程存储在master数据库中,其前缀为sp_。系统存储过程可以在任意一个数据库中执行。 用户存储过程是创建在用户数据库中的存储过程。其名称前面一般不加sp_前缀。主要在应用程序中使用,以完成特定的任务。 临时存储过程属于用户存储过程。如果用户存储过程前面加上符号“#”,则该存储过程称为局部临时存储过程,只能在一个用户会话中使用。4、扩展存储过程是在SQLServer环境之外执行的动态链接库DLL,其前缀为xp_。尽管这些动态链接库在SQLServer环境之外,但它们可以被加载到SQLServer系统中,并且按照存储过程的方式执行。 5、远程存储过程是指从远程服务器上调用的存储过程,或者是从连接到另外一个服务器上的客户机上调用的存储过程。创建存储过程使用向导创建存储过程创建存储过程不带参数的存储过程: CREATEPROCpr_例一 AS SELECT*FROM学生花名册 GO EXECpr_例一 查看存储过程执行存储过程删除存储过程修改存储过程修改pr_例一存储过程,使其按年龄排序 ALTERPROCpr_例一 AS SELECT* FROM学生花名册 ORDERBY年龄 EXECpr_例一重命名存储过程通过存储过程传递参数带参数的存储过程: CREATEPROCEDUREpr_例二 @xhint=1 AS BEGIN SETNOCOUNTON SELECT* FROM学生花名册 WHERE学号=@xh END DECLARE@接收值INT EXECpr_例二6 PRINT@接收值存储过程的执行 [[EXEC[UTE]] {[@返回值=]存储过程名[;数字] @参数={值|变量[OUTPUT]|[DEFAULT]} [WITHRECOMPILE] CREATEPROCpr_例一 AS BEGIN DECLARE@返回值int SELECT@返回值=COUNT(DISTINCT学号) FROM学生花名册 RETURN@返回值 END EXECpr_例一DECLARE@接收值INT EXEC@接收值=pr_例一 PRINT@接收值 CREATEPROCpr_例一 @返回值INTOUTPUT AS BEGIN SELECT@返回值=COUNT(DISTINCT学号) FROM学生花名册 ENDDECLARE@接收值INT EXECpr_例一@接收值OUTPUT PRINT@接收值 创建一个存储过程,求两个整数的乘积 CREATEPROCMUL @aINT, @bINT, @RESULTINTOUTPUT AS SET@RESULT=@a*@b GO DECLARE@接收值INT EXECMUL9,3,@接收值OUTPUT PRINT@接收值 CREATEPROCEDUREfactorial @infloat,@outfloatOUTPUT AS DECLARE@iint,@sfloat SET@i=1 SET@s=1 WHILE@i<=@in BEGIN SET@s=@s*@i SET@i=@i+1 END SET@out=@s DECLARE@oufloat EXECfactorial5,@ouOUTPUT PRINT'其阶乘为:'+RTRIM(@ou)CREATEPROCEDUREpr_例六 @姓名varchar(15)OUTPUT, @SQLint AS BEGIN SELECT* FROM成绩 WHERE成绩.SQL>@SQL END DECLARE@姓名varchar(15) EXECpr_例六@姓名OUTPUT,88 PRINT@姓名CREATEPROCpr_例七 AS BEGIN declare@返回值int SELECT@返回值=MAX(SQL) FROM成绩 return@返回值 END DECLARE@接收值INT EXEC@接收值=pr_例七创建一个加密的存储过程 CREATEPROC学生信息 @姓名nvarchar(15) WITHENCRYPTION AS SELECT* FROM学生花名册 WHERE姓名=@姓名 DECLARE@姓名varc