欢迎来到站长教程网!

mssql

当前位置:主页 > 数据库 > mssql >

SQL Function 自界说函数详解

时间:2021-05-05|栏目:mssql|点击:

目次

发生配景(已经有了存储进程,为什么还要利用自界说函数)
成长汗青
组成
利用要领
合用范畴
留意事项
疑问
内容

发生配景(已经有了存储进程,为什么还要利用自界说函数)

与存储进程的区别(存在的意义):

1.     可以或许在select等SQL语句中直接利用自界说函数,存储进程不可。
2.     自界说函数可以挪用其他函数,也可以挪用本身(递归)
3.     可以在表列和 CHECK 约束中利用自界说函数来实现非凡列或约束
4.       自界说函数不能有任何副浸染。函数副浸染是指对具有函数外浸染域(譬喻数据库表的修改)的资源状态的任何永久性变动。函数中的语句独一能做的变动是对函数上的局部工具(如局部游标或局部变量)的变动。不能在函数中执行的操纵包罗:对数据库表的修改,对不在函数上的局部游标举办操纵,发送电子邮件,实验修改 目次,以及生成返回至用户的功效集。存储进程没有此限制
5.       函数只能返回一个变量。而存储进程可以返回多个

成长汗青

SqlServer 2000之后都支持用户自界说函数

组成

在SQL Server 2000 中按照函数返回值形式的差异将用户自界说函数分为三种范例:标量函数(Scalar Function)、内嵌表值函数(Inline Function)、多声明表值函数(Multi-Statement Function)
标量函数:标量函数是对单一值操纵,返回单一值。可以或许利用表达式的处所,就可以利用标量函数。像我们常常利用的left、getdate等,都属于标量函数。系统函数中的标量函数包罗:数学函数、日期和时间函数、字符串函数、数据范例转换函数等
内嵌表值函数:内嵌表值函数的成果相当于一个参数化的视图。它返回的是一个表,内联表值型函数没有由BEGIN-END 语句括起来的函数体。其返回的表由一个位于RETURN 子句中的SELECT 呼吁段从数据库中筛选出来。

浸染

多声明表值函数:可以看作标量型和内嵌表值型函数的团结体。它的返回值是一个表,但它和标量型函数一样有一个用BEGIN-END 语句括起来的函数体,返回值的表中的数据是由函数体中的语句插入的。由此可见,它可以举办多次查询,对数据举办多次筛选与归并,补充了内联表值型函数的不敷。

利用要领

SQL Server 为三种范例的用户自界说函数 提供了差异的呼吁建设名目。

  (1) 建设标量型用户自界说函数(Scalar functions) 其语法如下:

SQL Function 自定义函数详解

各参数说明如下:
  owner_name :指定用户自界说函数的所有者。
  function_name:指定用户自界说函数的名称。database_name.owner_name.function_name 应是惟一的。
  @parameter_name:界说一个或多个参数的名称。一个函数最多可以界说1024 个参数每个参数前用“@”标记标明。参数的浸染范畴是整个函数。参数只能替代常量,不能替代表 名、列名或其它数据库工具的名称。用户自界说函数不支持输出参数。 
  scalar_parameter_data_type:指定标量型参数的数据范例,可觉得除TEXT、 NTEXT、 IMAGE、 CURSOR、TIMESTAMP 和TABLE 范破例的其它数据范例。 
  scalar_return_data_type:指定标量型返回值的数据范例,可觉得除TEXT、 NTEXT、 IMAGE、 CURSOR、TIMESTAMP 和TABLE 范破例的其它数据范例。 
  scalar_expression:指定标量型用户自界说函数返回的标量值表达式。
  function_body:指定一系列的Transact-SQL 语句,它们抉择了函数的返回值。 
  ENCRYPTION:加密选项。让SQL Server 对系统表中有关CREATE FUNCTION 的声明加密,以防备用户自界说函数作为SQL Server 复制的一部门被宣布(Publish) 。
   SCHEMABINDING:打算绑定选项将用户自界说函数绑定到它所引用的数据库工具假如指定 了此选项,则函数所涉及的数据库工具以后将不能被删除或修改,除非函数被删除或去掉此选项。应留意的是,要绑定的数据库工具必需与函数在同一数据库中。

SQL Function 自定义函数详解

SQL Function 自定义函数详解

(2)建设内联表值型用户自界说函 数(Inline Table-valued Functions)

其语法如下:

SQL Function 自定义函数详解

各参数说明如下:

  TABLE:指定返回值为一个表。

  select-stmt:单个SELECT 语句,确定返回的表的数据。

  其余参数与标量型用户自界说函数沟通。

SQL Function 自定义函数详解

SQL Function 自定义函数详解

(3) 建设多声明表值型用户自界说函数

  其语法如下:

SQL Function 自定义函数详解

各参数说明如下:

  @return_variable :一个TABLE 范例的变量,用于存储和累积返回的表中的数据行。 其余参数与标量型用户自界说函数沟通。

上一篇:数据库 要害字一览表

栏    目:mssql

下一篇:SQL Server 2012安装后处事器名称找不到的办理步伐

本文标题:SQL Function 自界说函数详解

本文地址:www.jiaocheng88.com.cn/mssql/62004.html

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:584415406 | 邮箱:584415406#qq.com(#换成@)

Copyright © 2015-2020 小白站长教程网 版权所有 苏ICP备20040415号-3