SQL Server自定义函数( 转载于51CTO )

用户自定义函数
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁自定义函数不能执行一系列改变数据库状态的操作,可以像系统函数在查询或存储过程等的程序中使用,也可以像相信过程一样能过 execute 命令来执行。自定义函数中存储了一个 Transact - SQL 例程可以返回一定的值。根据函数返回值形式的不同,将用户看定义函数分为三种类型:
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁( 1 ). 标量型函数:标量型函数返回一个确定类型的标量值,其返回值类型为除了 text, ntext , image ,cursor ,timestampt 和 table 类型外的其它数据类型。函数体语句定义在 begin - end 语句内,其中包含了可以返回值的 Transact - SQL 命令。
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁语法:
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 create function [ owner_name ] function_name
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁( [ {@parameter_name [as ] scalar_parameter_data_type [ =default ] } [ ,T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁n ] ])
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 returns scalar_return_data_type
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 [ with <function_option> [,T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁n ] ]
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 [ as ] 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 begin 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁function_body
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 return [ scalar_expression ] 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 end 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁其中:
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 < 1 > .function_option 有两个可选值:{encryption | schemabinding}
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁encryption: 加密选项,让 SQL Server 对系统表中有关 create function 的声明加密,以防止用户自定义函数作为 SQL Server 复制的一部分被发布。
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁schemabinding,计划绑定选项。将用户自定义函数绑定到它所引用的数据库对象,则函数所涉及的的数据库对象从此将不能被删除或修改,除非函数被删除或去掉此选项。应注意的是要绑定的数据库对象必须与函数在同一数据库中。
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 < 2 > .owner_name: 指定用户自定义函数的所有者。
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 < 3 > .function_name: 指定用户自定义函数的名称。
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 < 4 > .database_name.owner_name.function_name 应是唯一的。
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 < 5 > . @parameter_name : 定义一个式多个参数的名称,一个函数最多可以定义 1024 个参数,每个参数前用 @符号标明 ,参数的作用范围是整个函数,参数只能替代常量,不能替代表名,列名或其它数据库对象名称,用户自定义函数不支持输出参数。
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 < 6 > .scalar_parameter_data_type: 指定标量参数的数据类型,除了 text, ntext , image , cursor,timestampt 和 table 类型外的其它数据类型。
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 < 7 > .scalar_return_data_type: 指定标量返回值的数据类型,除了 text, ntext , image , cursor,timestampt 和 table 类型外的其它数据类型。
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 < 8 > .scalar_expression: 指定标量型用户自定义函数返回的标量值表达式。
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 < 9 > .function_body: 指定一系列的 Transact_SQL 语句它们决定了函数的返回值。
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁例:创建军工龄工资计算函数
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 use taihang
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 go 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 -- 创建函数 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 create function workyearwage( @hiredate datetime , @today datetime , @per_wage money )
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 -- hiredate 表示雇佣期, today 表示当前日期,par_wage 表示每一年的工龄应得的工资额 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 returns money 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 as begin 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 declare @workyearwage money 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 set @workyearwage = ( year ( @today ) - year ( @hiredate )) * @per_wage 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 return ( @workyearwage )
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 end -- 结束函数定义 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 go 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 -- 调用函数 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 select taihang.dbo.workyearwage( &apos; 1999-7-1 &apos; , getdate (), 15 )
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 as work_year_wage
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁注意:以上的函数体可简写为:
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 as begin 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 return (( year ( @today ) - year ( @hiredate )) * @per_wage )
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 end 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁( 2 ). 内嵌表值函数:以表的形式返回一个返回值,即它返回的是一个表。内嵌表值型函数没有由 begin -end 语句括起来的函数体,其返回的表由一个位于 return 子句中的 select 命令段从数据库中筛先出来。内嵌表值型函数功能相当于一个参数化的视图。
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁创建函数语法:
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 create function [ owner_name ] function_name
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁( [ {@parameter_name [as ] scalar_parameter_data_type [ =default ] } [ ,T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁n ] ])
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 returns table 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 [ with <function_option> [,T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁n ] ]
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 [ as ] 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 return ( select - stmt)
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁其中:
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 < 1 > . table : 批定返回值为一个表。
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 < 2 > . select - stmt: 单个 select 语句,确定返回的表的数据。
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁例:创建返回所有订购某类产品的公司信息函数
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 use taihang
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 go 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 create function orderfirms( @productid varchar ( 30 ))
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 -- productid 表示产品代号 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 returns table 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 as 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 return ( select * from products p
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 where p.p_id = @productid )
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 go 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁( 3 ). 多语句表值型函数:可以看作标量型和内嵌表值型函数的结合体,它的返回值是一个表,但它和标量型函数一样有一个用 begin - end 语句括起来的函数体。返回值表中的数据是由函数体
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁语法:
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 create function [ owner_name ] function_name
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁( [ {@parameter_name [as ] scalar_parameter_data_type [ =default ] } [ ,T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁n ] ])
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 returns @return_variable table < table_type_definition > 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 [ with <function_option> [,T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁n ] ]
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 [ as ] 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 begin 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁function_body
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 return end 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁其中:
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 < 1 > . < table_type_definition > :({column_definition | table_constraint} [ ,T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁n ] )
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 < 2 > . @return_variable : 一个 table 类型的变量,用于存储和累积返回的表中的数据行。
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 4 . 修改用户自定义函数
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 alter function : 此命令语法与 create function 相同,相当于重建。
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 5 . 删除用户自定义函数
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁 drop function { [ owner_name ] function_name} [ ,T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁n ] 
T-SQL学习笔记-程序设计基础-自定义函数 - 钱途无梁 - Notebook of 钱途无梁建议到企业管理器里修改,简单、方便。

 

转载于:https://www.cnblogs.com/techmale/p/5469972.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值