《用户自定义函数》PPT课件.ppt

《用户自定义函数》PPT课件.ppt

ID:52096462

大小:222.50 KB

页数:42页

时间:2020-03-31

《用户自定义函数》PPT课件.ppt_第1页
《用户自定义函数》PPT课件.ppt_第2页
《用户自定义函数》PPT课件.ppt_第3页
《用户自定义函数》PPT课件.ppt_第4页
《用户自定义函数》PPT课件.ppt_第5页
资源描述:

《《用户自定义函数》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第16章用户自定义函数116.1用户自定义函数的基本概念SQLServer允许创建用户定义函数用户定义函数是可返回值的例程2用户定义函数种类返回可更新数据表的函数返回不可更新数据表的函数返回标量值的函数若函数含单个SELECT语句且可更新,则返回的数据表可更新若函数含多个SELECT语句或一个不可更新的SELECT语句,则返回的数据表不可更新316.2创建用户自定义函数16.2.1创建用户自定义函数CREATEFUNCTION[owner-name,]function-name([{@parameter-namescalar_parameter_datetype[=default

2、]}[,…n]])参数名,局部变量参数数据类型4RETURNSscalar_return_datatype[WITH[,…n]][AS]BEGINsql-statementRETURNscalar-expressionEND用户自定义函数的返回值函数中返回值的表达式5SCHEMABINING选项可将函数绑定到它所引用的数据库对象function-optionENCRYPTION选项可以实现SQLServer加密包含CREATEFUNCTION语句文本的系统表列6例:在Northwind库上创建自定义函数my_function1,通过向该函数输入代

3、表商品年销售额的money类型参数的大小返回字符串,若年销售额大于10000,返回“热销商品”,否则返回“非热销商品”7USENorthwindgoCREATEFUNCTIONmy_function1(@moneyinputmoney)RETURNSnvarchar(5)8BEGINDECLARE@returnstringnvarchar(5)IF@moneyinput<10000SET@returnstring='非热销商品'ELSESET@returnstring='热销商品'RETURN@returnstringEND9在Northwind库上有一个记录各种产品在1997年

4、销售额的视图,通过它来引用新建的my_function1,查看哪些商品属于热销商品USENorthwindgoSELECTProductName,ProductSales,dbo.my_function1(ProductSales)ASDiscriptionFROM[Productsalesfor1997]WHERECategoryName=’DairyProducts’101116.2.2查看用户自定义函数自定义函数的名称保存在sysobjects系统表中创建自定义函数的源代码保存在syscomments系统表中121.使用系统存储过程查看EXECsp_help(sp_help

5、text)例:用系统存储过程sp_helptext查看用户自定义函数my_funciton1的定义文本信息USENorthwindgoEXECsp_helptextmy_function1go13142.使用系统表或系统信息架构视图在SQLServer中存在三个信息架构视图报告有关用户自定义函数的信息ROUTINESPARAMETERSROUTINE_COLUMNS这些信息架构视图也是基于系统表sysobjects和syscomments实现的15例:使用系统表sysobjects查看数据库Northwind上存在的所有用户自定义函数的相关信息。US

6、ENorthwindSELECTfromsysobjectsWHEREtype='FN'go1616.3用户自定义函数类型自定义函数有三种类型标量函数内嵌表值函数多语句表值函数1716.3.1标量函数标量函数返回在RETURNS子句中定义的数据类型的单个数据值标量函数可重复调用18例:创建标量函数,要求将当前系统日期转化为年月日格式的字符串并返回,且默认的分隔符为‘::’,并允许用户自行定义分隔符19CREATEFUNCTIONmy_function2(@DATEdatetime,@separatornvarchar(2)='::')RETURNSnvarchar(20)BEGI

7、NDECLARE@returnstringnvarchar(20)20SET@returnstring='今天是'+CONVERT(nvarchar(5),datepart(year,@date))+‘年’+@separator+CONVERT(nvarchar(5),datepart(month,@date))+‘月’+@separator+CONVERT(nvarchar(5),datepart(day,@date))+'日'RETURN@returnstringEND21如

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。