- 4
- 0
- 约2.01万字
- 约 75页
- 2016-10-26 发布于广东
- 举报
5.6 用户定义函数 5.6.1 用户函数的定义与调用 1.标量函数 (1)标量函数的定义。语法格式: CREATE FUNCTION [ schema_name. ] function_name /*函数名部分*/ ( [ { @parameter_name [ AS ][ type_schema_name. ]?parameter_data_type /*形参定义部分*/ [ = default ] [ READONLY ] } [ ,...n ]?]) RETURNS return_data_type /*返回参数的类型*/ [ WITH ENCRYPTION ] /*函数选项定义*/ [ AS ] BEGIN function_body /*函数体部分*/ RETURN scalar_expression /*返回语句*/ END [ ; ] 5.6.1 用户函数的定义与调用 从上述语法形式可归纳出标量函数的一般定义形式如下: CREATE FUNCTION [所有者名.] 函数名 ( 参数1 [AS] 类型1 [ = 默认值 ] ) [ ,...参数n [AS] 类型n [ = 默认值 ] ] ] ) RETURNS 返回值类型 [ WITH 选项 ] [ AS ] BEGIN 函数体 RETURN 标量表达式 END 5.6.1 用户函数的定义与调用 【例5.28】 创建用户定义函数,实现计算全体学生某门功课平均成绩的功能。 USE PXSCJ GO CREATE FUNCTION average(@cnum char(20)) RETURNS int AS BEGIN DECLARE @aver int SELECT @aver= ( SELECT avg(成绩) FROM CJB WHERE 课程号=@cnum GROUP BY 课程号 ) RETURN @aver END GO 5.6.1 用户函数的定义与调用 (2)标量函数的调用。当调用用户定义的标量函数时,必须提供至少由两部分组成的名称(架构名.函数名)。 【例5.29】 调用例5.38定义的函数average。 USE PXSCJ /*假设用户函数average在此数据库中已定义*/ GO DECLARE @course1 char(20) /*定义局部变量*/ DECLARE @aver1 int SELECT @course1 = 101 /*给局部变量赋值*/ SELECT @aver1=dbo.average(@course1) /*调用用户函数,并将返回值赋给局部变量*/ SELECT @aver1 AS 101课程的平均成绩 /*显示局部变量的值*/ 执行结果如下: 5.6.1 用户函数的定义与调用 【例5.30】 调用例5.28中计算平均成绩的函数。 DECLARE @course1 char(20) DECLARE @aver1 int EXEC @aver1 = dbo.average @cnum = 101 /*显示局部变量的值*/ SELECT @aver1 AS 101课程的平均成绩 /*通过EXEC调用函数,将返回值赋给局部变量*/ 【例5.31】 在PXSCJ中建立一个course表,并将一个字段定义为计算列。 USE PXSCJ /*用户函数average在此数据库中已定义*/ GO CREATE TABLE course ( cno int, /*课程号*/ cname nchar(20), /*课程名*/ credit int, /*学分*/ aver AS /*将此列定义为计算列*/ ( dbo.average(cno) ) ) 5.6.1 用户函数的定义与调用 2.内嵌表值函数 内嵌函数可用于实现参数化视图。例如,有如下视图: CREATE VIEW View1 AS SELECT 学号, 姓名 FROM PXSCJ.dbo.XSB WHERE 专业= 计算机 5.6.1 用户函数的定义与调用 由于视图不支持在WHERE子句中指定搜索条件参数,为解决这一问题,我们可使用内嵌用户定义函数,脚本如下: /*内嵌函数的定义*/ CREATE FUNCTION fn_Vie
您可能关注的文档
- 新SQL Server 2005数据库实践教程——管理与维护篇 电子教案 钱哨 2.第二章 .SQL Server 2005概述.ppt
- 新SQL Server 2005数据库实践教程——管理与维护篇 电子教案 钱哨 3.第三章 .数据库备份与恢复技术.PPT
- 新SQL Server 2005数据库实践教程——管理与维护篇 电子教案 钱哨 4.第四章 .数据库转换与复制技术.ppt
- 新SQL Server 2005数据库实践教程——管理与维护篇 电子教案 钱哨 5.第五章 .SQL Server 2005的安全性.ppt
- 新SQL Server 2005数据库实践教程——管理与维护篇 电子教案 钱哨 6.第六章 .自动化管理任务.ppt
- 新SQL Server 2005数据库实践教程——管理与维护篇 电子教案 钱哨 7.第七章 .数据库维持高可用性.ppt
- 新SQL Server 2005数据库实践教程——管理与维护篇 电子教案 钱哨 8.第八章 .SQL Server 2005的分析服.ppt
- 新SQL Server 2005数据库实践教程——管理与维护篇 电子教案 钱哨 9.第九章 .SQL Server 2005 报表服务.ppt
- 新SQL Server 2005数据库实践教程——开发与设计篇 电子教案 钱哨 第1章 关系数据库标准语言SQL.ppt
- 新SQL Server 2005数据库实践教程——开发与设计篇 电子教案 钱哨 第3章 事务处理、并发控制及数据库优化.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 人教版三年级数学下册《口算除法》.ppt VIP
- 中华民族共同体概论课件专家版3第三讲 文明初现与中华民族起源(史前时期).pptx VIP
- 西南财经大学专题研究生考试参考书目.pdf VIP
- 中华民族共同体概论课件第十二讲民族危亡与中华民族意识觉醒(1840—1919)2025年版.pptx VIP
- 金属地下矿山安全教育培训课件.ppt VIP
- 第二学期八年级数学备课组工作计划.docx VIP
- 妇科护理宫腔镜进修总结.pptx
- 中华民族共同体概论大讲堂之第十二讲民族危亡与民族意识觉醒(1840—1919).pptx VIP
- 2025年度销售工作总结与2026战略规划.pptx VIP
- 《横县鱼生全链条管理规范 第1部分:养殖》.docx VIP
原创力文档

文档评论(0)