- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机数据库用户自定义函数
用户自定义函数设计 1 用户自定义函数概述 2 创建用户定义函数 3 用户定义函数的调用 4 修改和删除用户定义函数 5 用户定义函数实例分析 1 用户自定义函数概述 1.1用户自定义函数的特点 1、重复使用编程代码,减少编程开发时间,提高工作效率。 2、隐藏SQL细节,把SQL繁琐的工作留给数据库开发人员,而程序开发员则集中处理高级编程语言。 3、维修集中化,可以在一个地方做业务上的逻辑修改,然后让这些修改自动应用到所有相关程序中。 4、可在另一个SQL语句中直接调用。 5、函数必须始终返回一个值(一个标量值或一个表格) 1 用户自定义函数概述 除了使用系统提供的函数外,用户还可以根据需要自定义函数。用户自定义函数(User Defined Functions)是SQL Server 2000以后新增的数据库对象,是SQL Server的一大改进。 用户自定义函数不能用于执行一系列改变数据库状态的操作,但它可以像系统函数一样在查询或存储过程等的程序段中使用,也可以像存储过程一样通过EXECUTE命令来执行。用户自定义函数中存储了一个Transact-SQL例程,可以返回一定的值。 可使用CREATE FUNCTION语句创建、使用ALTER FUNCTION语句修改、以及使用DROP FUNCTION语句除去用户定义函数。每个完全合法的用户定义函数名必须唯一。 必须被授予CREATE FUNCTION权限才能创建、修改或除去用户定义函数。不是所有者的用户在Transact-SQL语句中使用某个函数之前,必须先给此用户授予该函数的适当权限。若要创建或更改在CHECK约束、DEFAULT子句或计算列定义中引用用户定义函数的表,还必须具有函数的REFERENCES权限。 标量型函数(Scalar functions) 标量型函数返回在RETURNS子句中定义的类型的单个数据值。可以使用所有标量数据类型,包括bigint和sql_variant。不支持timestamp数据类型、用户定义数据类型和非标量类型(如table或cursor)。在BEGIN...END块中定义的函数主体包含返回该值的 Transact-SQL语句系列。返回类型可以是除text、ntext、image、cursor、timestamp和table 之外的任何数据类型。 内嵌表值型函数(Inline table-valued functions) 内嵌表值型函数以表的形式返回一个返回值,即它返回的是一个表。内嵌表值型函数没有由BEGIN-END语句括起来的函数体。其返回的表由一个位于RETURN子句中的SELECT命令段从数据库中筛选出来。内联表值型函数功能相当于一个参数化的视图。 多语句表值型函数(Multi-statement table-valued functions) 多语句表值型函数可以看作标量型和内嵌表值型函数的结合体。它的返回值是一个表,但它和标量型函数一样有一个用BEGIN-END语句括起来的函数体,返回值的表中的数据是由函数体中的语句插入的。由此可见,它可以进行多次查询,对数据进行多次筛选与合并,弥补了内嵌表值型函数的不足。 用户定义函数采用零个或更多的输入参数并返回标量值或表。函数最多可以有1024个输入参数。当函数的参数有默认值时,调用该函数时必须指定默认DEFAULT关键字才能获取默认值。该行为不同于在存储过程中含有默认值的参数,而在这些存储过程中省略该函数也意味着省略默认值。用户定义函数不支持输出参数。 函数中的有效语句类型包括: (1)DECLARE语句,该语句可用于定义函数局部的数据变量和游标。 (2)为函数局部对象赋值,如使用SET给标量和表局部变量赋值。 (3)游标操作,该操作引用在函数中声明、打开、关闭和释放的局部游标。不允许使用FETCH语句将数据返回到客户端。仅允许使用FETCH语句通过INTO子句给局部变量赋值。 (4)控制流语句。 (5)SELECT语句,该语句包含带有表达式的选择列表,其中的表达式将值赋予函数的局部变量。 (6)INSERT、UPDATE和DELETE语句,这些语句修改函数的局部table变量。 (7)EXECUTE语句,该语句调用扩展存储过程。 2 创建用户定义函数 创建标量型用户自定义函数(Scalar functions): CREATE FUNCTION [ owner_name.] function_name ([{ @parameter_name [AS] scalar_paramet
您可能关注的文档
最近下载
- SCADA(电力监控)系统介绍.pptx VIP
- 2025年机关事业单位工人汽车驾驶员高级、技师国家题库练习题(附答案).docx VIP
- 班级生活有规则教学设计.doc VIP
- CMF中国宏观经济分析与预测报告(2025年中期) 稳舵远航的中国宏观经济.docx
- QGDW 11399-2015 架空输电线路无人机巡检作业安全工作规程.docx VIP
- 中国药物性肝损伤诊治指南2023版解读.pptx VIP
- 施工测量专项施方案.doc VIP
- 2024年春季四川凉山州普格县一村一幼辅导员招聘74人笔试备考题库及答案解析.docx VIP
- 防爆电气安装规范及验收标准制定.docx VIP
- 市政集团笔试题库及答案.pdf
文档评论(0)