第十章存储过程触发系器及自定义函数2.pptVIP

第十章存储过程触发系器及自定义函数2.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十章存储过程触发系器及自定义函数2

用户自定义函数 10.3.2 创建自定义函数 1.创建标量值函数: 标量值函数的函数体由一条或多条T-SQL语句组成,写在BEGIN与END之间。 其语法格式如下: CREATE FUNCTION 函数名 ([@形参名 数据类型[,…,n]]) RETURNS 返回值数据类型 [WITH ENCRYPTION] [AS] BEGIN T-SQL语句或语句块 RETURN 返回表达式 END 参数说明如下: 返回值的数据类型不能是text、ntext、image和timestamp类型。 在BEGIN…END之间,必须有一条RETURN语句,用于指定返回表达式,即函数的值。 第十章 存储过程、触发器、自定义函数 SQL Server 2008 用户自定义函数 【例10-6】定义函数EProduct_Number,当给出一个客户ID,返回该客户所拥有的产品数量。 【分析】 该自定义函数接收的参数是客户ID,数据类型应与EProduct中的CID一致;返回的值是产品数,该数据量一般不大,可以设为smallint类型。 代码如下: CREATE FUNCTION EProduct_Number (@EP_CID int) RETURNS smallint AS BEGIN DECLARE @epnum smallint SELECT @epnum =count(*) FROM EProduct WHERE CID=@EP_CID RETURN @epnum END GO 第十章 存储过程、触发器、自定义函数 SQL Server 2008 标量值函数的调用 在select语句中调用: 调用形式: Select 所有者名称.函数名称(实参1,……实参n) 实参为已赋值的局部变量或表达式,实参的顺序要与函数创建时的顺序完全一致。 【例】 对创建的函数EProduct_Table_1进行调用。 SELECT dbo.EProduct_Table_1( 利用Exec语句执行 调用形式: EXEC 变量名= 所有者名称.函数名称(实参1,……实参n) 或 EXEC 变量名=Schema_name.function_name 形参名1=实参1,……形参名n=实参n 【例】利用Exec调用函数getAverAge。 在查询编辑器中,输入以下代码: USE jxgl DECLARE @age int EXEC @age=dbo.getaverage @tabname=students,@sex=男 PRINT 男学生的平均年龄:+CONVERT(varchar(10),@age) 用户自定义函数 2.创建内联表值函数: 语法格式如下: CREATE FUNCTION 函数名 ([@形参名 数据类型[,…,n]]) RETURNS Table [WITH ENCRYPTION] [AS] RETURN(SELECT查询语句) 参数说明如下: 内联表值函数没有函数体。 RETURNS Table子句说明返回值是一个表。 RETURN子句中的SELECT语句是返回表中的数据。 第十章 存储过程、触发器、自定义函数 SQL Server 2008 用户自定义函数 【例10-7】定义函数EProduct_Table,当给出一个客户ID,返回该客户所拥有的产品号码。 代码如下: CREATE FUNCTION EProduct_Table (@EP_CID int) RETURNS Table AS RETURN (SELECT ENO,EName FROM EProduct WHERE cid=@EP_CID 第十章 存储过程、触发器、自定义函数 SQL Server 2008 内联表值函数 内联表值函数的调用 内联表值函数只能通过Select语句进行调用,调用时,可以仅使用函数名。 【例】 调用函数getCourseScore,查询学生张小峰所选修的课程及其成绩。 USE jxgl SELECT * FROM getCourseScore(‘张小峰’) GO 3.多语句表值函数 多语句表值函数和内联表值函数都返回表,二者的不同之处在于:内联表值函数没有函数主体,返回的表是单个Select语句的结果集;而多语句表值函数在Begin……End块中定义的函数主体由T-SQL语句序列构成,这些语句可生成记录行并将行插入到表中,最后返回表。 用户自定义函数 创建多语句表值函数: 语法格式如下: CREATE FUNCTION 函数名 ([@形参名 数据类型[,…,n]]) RETURNS @返回变量 Table (表结构定义) [WITH ENCRYPT

文档评论(0)

180****9566 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档