第五篇 高级数据访问.pptVIP

  • 6
  • 0
  • 约1.36万字
  • 约 55页
  • 2017-06-19 发布于湖北
  • 举报
数据库 教师: 田 勇 tianyong@ 矫志杰 jiaozj@163.com 第五章 高级数据访问 创建SQL调用例程 使用SQL游标 创建SQL触发器 管理SQL事务 创建SQL调用例程 存储过程 存储过程是保存起来的可以接受和返回用户提供的参数的 Transact-SQL 语句的集合。 存储过程可以返回一个或多个结果集。 存储过程优点:高速度、可重用性、商业逻辑封装、减少网络拥挤以及安全性等。 创建SQL调用例程 SQL Server存储过程创建基本语法 CREATE PROC proc_name ( [@para data_type [ = default ] [ OUTPUT ] ] [ ,...n ] ) AS? sql_statement [ ...n ] 参数包含的括号可以省略,AS 关键字表示存储过程主体的开始,存储过程主体是一个或者多个SQL 语句。 参数名称以@开始,如果有多个参数,用逗号将参数声明分开。 如果当调用存储过程时没有提供参数,可以定义一个缺省的输入值。 调用存储过程: exec [execute] proc_name para [output],… 如果是输出参数,需要添加 output 关键字 创建SQL调用例程 存储过程示例: create proc addnum (@a int,@b int,@c int output) AS set @c=@a+@b; declare @result int; execute addnum 1,2,@result output; print @result; 创建SQL调用例程 存储过程示例: create proc find (@gzmin float =500,@gzmax float =1000) AS select * from 工资库 where 工资 between @gzmin and @gzmax; execute find; execute find 700,1200; execute find 700; execute find ,900;错误写法 创建SQL调用例程 存储过程示例: create proc findclass (@num nchar(10),@classname nchar(20) output) as begin declare @mystr nchar(10); select @mystr=课程编号 from 选课 where 学号=@num; select @classname=课程名称 from 课程 where 课程编号=@mystr; end; declare @name nchar(20) exec findclass 95001,@name output; print @name; 创建SQL调用例程 存储过程说明 如果存储过程由多条语句组成,建议使用 Begin…End; 存储过程为其每一个Select语句返回结果集; 存储过程可以使用Return返回状态值,可用于判断执行状态; Create proc addnum (@i int , @j int , @result int output) AS begin if(@i0 or @j0) return -1; set @result=@i + @j ; return 0; end; Declare @status int , @result int ; Exec @status=addnum 5, 8, @result output ; select @result , @status ; 创建SQL调用例程 可以在存储过程中任何地方添加注释; -- , /*…*/ 存储过程可以使用 SELECT , UPDATE , DELETE 等SQL数据查询和修改语句; Create proc modifyTable ( @职称名称 char(10) , @增长系数 float ) AS update 工资库 set 工资=(1+@增长系数)*工资 where 职称= @职称名称; 存储过程可以使用 IF , WHILE , GOTO , WAITFOR等流程控制语句; Create proc jc (@n int , @result int output ) AS begin declare @i int ; select @i=1 , @result=1; while ( @i= @n) begin

文档评论(0)

1亿VIP精品文档

相关文档