网站大量收购闲置独家精品文档,联系QQ:2885784924

sql函数和存储.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
sql函数和存储

第五章 函数和存储过程 1.表值函数和标量值函数 2.系统存储过程 3.用户自定义存储过程及执行 标量函数 标量函数返回在RETURNS子句中定义的单个数据值。函数返回类型是除text、next、image、cursor和timestamp外的任何数据类型。 标量函数的创建 语法格式如下: CREATE FUNCTION[schema_name.]function_name ([{@parameter_name[AS][type_schema_name.]parameter_data_type [=default]} [,…n] ]) RETURNS return_data_type [WITH function_option [,…n]] [AS] BEGIN 标量函数 function_body RETURN scalar_expression END 参数描述: schema_name:用户定义函数所属的架构的名称。 function_name:用户定义函数的名称。函数名称必须符合有关标识符的规则,并且在数据库中以及对其架构来说是唯一的。即使未指定参数,函数名称后也需要加上括号。 @parameter_name:用户定义函数的参数,可声明一个或多个参数。 标量函数 例:定义标量函数STUDENT_PASS(),统计学生考试是否合格的信息。代码如下: USE student GO CREATE FUNCTION student_pass_info(@grade tinyint) RETURNS char(8) BEGIN DECLARE @info char(8) IF @grade=60 SET @info=通过 ELSE SET @info=不合格 RETURN @info END GO 标量函数 标量函数 在查询分析器中输入以下代码,执行后结果. USE student GO SELECT 课程注册.学号,学生.姓名,课程.课程名,dbo.student_pass_info(成绩)AS 是否通过 FROM 学生,课程注册,课程 WHERE 课程注册.课程号=课程.课程号AND 课程注册.学号=学生.学号 表值函数 用户定义表值函数可分为内联表值函数和多语句表值函数。函数返回table数据类型。 创建内联表值函数 对于内联表值函数,没有函数主体,表是单个SELECT语句的结果集。语法格式如下: CREATE FUNCTION[schema_name.]function_name ([{@parameter_name[AS][type_schema_name.]parameter_data_type [=default]} [,…n] ]) RETURNS TABLE [WITH function_option [,…n]] [AS] RETURN[()select_stmt[]] [;] 表值函数 参数描述: schema_name:用户定义函数所属的架构的名称。 function_name:用户定义函数的名称。函数名称必须符合有关标识符的规则,并且在数据库中以及对其架构来说是唯一的。即使未指定参数,函数名称后也需要加上括号。 @parameter_name:用户定义函数的参数。可声明一个或多个参数。 [type_schema_name.]parameter_data_type:参数的数据类型及其所属的架构,后者为可选项。 [=default]:参数的默认值。 select_stmt:定义内联表值函数的返回值的单个SELECT语句 表值函数 例:定义内联表值函数TEACHER_COURSE(),函数根据参数返回教师开课的信息。代码如下: USE student GO CREATE FUNCTION TEACHER_COURSE(@teacher_id char(12)) RETURNS TABLE AS 表值函数 RETURN (SELECT DISTINCT 教师.教师编号,教师.姓名,系部.系部名称,课程.课程名,专业.专业名称 FROM 教师,系部,课程,教师任课,专业 WHERE 教师.教师编号=@teacher_id AND 教师.系部代码=系部.系部代码 AND 教师任课.教师编号=教师.教师编号 and 课程.课程号=教师任课.课程号 AND 教师任课.专业代码=专业.专业代码) GO 表值函数 表值函数 在查询分析器中输入并执行以下代码 USE student GO SELECT * FROM TEACHER_COURSE(100000000

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档