SQL Server 用户自定义函数
SQL Server 用户自定义函数
用户自定义函数不能用于执行一系列改变数据库状态的操作,但它可以像系统函数一样在查询或存储过程等的程序段中使用,也可以像存储过程一样通过
EXECUTE命令来执行。在SQLServer中根据函数返回值形式的不同将用户自定义函数分为三种类型:
(1)标量函数
标量函数返回一个确定类型的标量值,其返回值类型为除TEXT、NTEXT、IMAGE、CURSOR、TIMESTAMP和TABLE类型外的其它数据类型。函数体语句定义在BEGIN-END语句内。在RETURNS子句中定义返回值的数据类型,并且函数的最后一条语句必须为Return语句。创建标量函数的格式:
CreateFunction函数名(参数)
Returns返回值数据类型
[With{Encryption|Schemabinding}]
[AS]
BEGIN
SQL语句(必须有Return子句)
END
举例:
*******************************************************************CREATEFUNCTIONdbo.Max
(
@aint,
@bint
)
RETURNSintAS
BEGIN
DECLARE@maxint
IF@a>@bSET@max=@a
ELSESET@max=@b
Return@max
END
*******************************************************************
SQL Server 用户自定义函数
调用标量函数可以在T-SQL语句中允许使用标量表达式的任何位置调用返回标量值(与标量表达式的数据类型相同)的任何函数。必须使用至少由两部分组成名称的函数来调用标量值函数,即架构名.对象名,如dbo.Max(12,34)。
(2)内联表值函数
内联表值型函数以表的形式返回一个返回值,即它返回的是一个表。内联表值型函数没有由BEGIN-END语句括起来的函数体。其返回的表是由一个位于RETURN子句中的SELECT命令从数据库中筛选出来。内联表值型函数功能相当于一个参数化的视图。
*******************************************************************CreateFunction函数名(参数)
RETURNStable
[with{Encryption|Schemabinding}]
AS
Return(一条SQL语句)
举例:
CREATEFUNCTIONfunc(@idchar(8))
RETURNSTABLE
AS
RETURN(SELECT*FROMstudentWHERESID=@id)
*********************************************************************
调用内联表值函数:调用时不需指定架构名,如select*from
func('51300521')
(3)多语句表值函数
多语句表值函数可以看作标量函数和内联表值函数的结合体。它的返回值是一个表,但它和标量型函数一样有一个用BEGIN-END语句括起来的函数体,返回值的表中的数据是由函数体中的语句插入的。由此可见,它可以进行多次查询,对数据进行多次筛选与合并,弥补了内联表值函数的不足。
CreateFunction函数名(参数)
RETURNS表变量名(表变量字段定义)
SQL Server 用户自定义函数
[with{Encryption|Schemabinding}]
AS
BEGIN
SQL语句
Return
END
举例:
*******************************************************************CREATEFUNCTIONfunc(@selectionint)
RETURNS@tableTABLE
(
SIDchar(4)primarykeynotnull,
SNamenvarchar(4)null
)
AS
BEGIN
IF@selection=0
INSERTINTO@table(SELECTSID,SNameFROMstudent0)
ELSE
INSERTINTO@table(SELECTSID,SNameFROMstudent1)
Return
END
*******************************************************************
调用多语句表值函数:和调用内联表值函数一样,调用时不需制定架构名。注意:与编程语言中的函数不同的是,SQLServer自定义函数必须具有返回值。
注意:Schemabinding用于将函数绑定到它引用的对象上。函数一旦绑定,则不能删除、修改,除非删除绑定。
…… 此处隐藏:193字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [高等教育]一年级家长课程教案
- [高等教育]封丘县人民医院深入推进纠正医药购销领
- [高等教育]2017年6月大学英语四级真题试卷及答案(
- [高等教育]2017年北京第二外国语学院文学院824中
- [高等教育]7 高中历史第7单元1861年俄国农奴制改
- [高等教育]【K12学习】4、实际测量-苏教版六年级
- [高等教育]药具培训试卷题库及部分参考答案
- [高等教育]本土电子元器件目录分销商如何赢得生意
- [高等教育]七年级岭南版美术教案
- [高等教育]书作文之书法活动通讯稿
- [高等教育]Endnote X 软件使用入门和用法总结(LS)
- [高等教育]嵌入式系统的现状及发展状况
- [高等教育]2012抗菌药物专项整治活动方案解读
- [高等教育]人教版新课本一年级数学下册期末试卷
- [高等教育]爱课程民法学观后感
- [高等教育]930机组使用说明书1
- [高等教育]煤气设备设施点检标准
- [高等教育]常见室内观叶植物图解
- [高等教育]312党员群众路线心得体会
- [高等教育]小学信息(苗版)第一册全册教案
- 在市---局2010党建大会上的讲话
- 《科哲》提纲及补充阅读材料(2010.7)
- 苏州高博软件技术职业学院论文开题报告
- 兼职导游管理的困境及对策探讨
- 基于通用设计理念的现代厨房产品语义研
- 康乐一中2010年至2011年度鼓号队、花束
- 第10章_数据收集整理与描述_期末复习课
- 2008年黑龙江林甸商贸购物中心营销策划
- 水硬度的测定实验报告
- 五分钟教你拍摄夜景光绘照
- 2014年临床妇产科三基三严试题及答案
- 0第二课 纾解压力第一站了解压力
- 解析建筑工程电气设备安装施工技术要点
- 地方性应用型本科高校“双师型”师资队
- 高考语文专题复习课件:小说阅读指导
- 装饰工程投标书2
- 大学生就业难问题探讨及对策
- English and Its History
- 青岛市城市房屋修缮工程质量监督管理办
- 初中英语形容词和副词的用法和练习题




