`
stta04
  • 浏览: 115216 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

SQL Server 的三种自定义函数(用户定义的函数)

阅读更多

“自定义函数”是我们平常的说法,而“用户定义的函数”是 SQL Server 中书面的说法。

SQL Server 2000 允许用户创建自定义函数,自定义函数可以有返回值。

自定义函数分为:标量值函数或表值函数

  • 如果 RETURNS 子句指定一种标量数据类型,则函数为标量值函数。可以使用多条 Transact-SQL 语句定义标量值函数。
  • 如果 RETURNS 子句指定 TABLE,则函数为表值函数。

表值函数又可分为:内嵌表值函数(行内函数)或多语句函数

  • 如果 RETURNS 子句指定的 TABLE 不附带列的列表,则该函数为内嵌表值函数。
  • 如果 RETURNS 子句指定的 TABLE 类型带有列及其数据类型,则该函数是多语句表值函数。

标量值函数示例

CREATE FUNCTION dbo.Foo()
RETURNS int
AS
BEGIN
declare @n int
select @n=3
return @n
END

内嵌表值函数示例

CREATE FUNCTION dbo.Foo()
RETURNS TABLE
AS
return selectid, titlefrom msgs

内嵌表值函数只有一个 select 语句。

多语句表值函数示例(部分)

CREATE FUNCTION fn_FindReports (@InEmpId nchar(5))
RETURNS @retFindReports TABLE (empid nchar(5) primary key,
empname nvarchar(50) NOT NULL,
mgrid nchar(5),
title nvarchar(30))
...

注意其 RETURNS 部分。

多语句函数的主体中允许使用以下语句。未在下面的列表中列出的语句不能用在函数主体中。

  • 赋值语句。
  • 控制流语句。
  • DECLARE 语句,该语句定义函数局部的数据变量和游标。
  • SELECT 语句,该语句包含带有表达式的选择列表,其中的表达式将值赋予函数的局部变量。
  • 游标操作,该操作引用在函数中声明、打开、关闭和释放的局部游标。只允许使用以 INTO 子句向局部变量赋值的 FETCH 语句;不允许使用将数据返回到客户端的 FETCH 语句。
  • INSERT、UPDATE 和 DELETE 语句,这些语句修改函数的局部 table 变量。
  • EXECUTE 语句调用扩展存储过程。
分享到:
评论

相关推荐

    SqlServer自定义多参数聚合函数实例代码

    标题提到的"SqlServer自定义多参数聚合函数实例代码"就是针对这种情况提供的一种解决方案。 自定义聚合函数通常通过两种方式实现:T-SQL(Transact-SQL)或CLR(Common Language Runtime)。T-SQL方式适用于简单的...

    Sqlserver 自定义函数 Function使用介绍

    本篇主要关注SQL Server 2008中的三种自定义函数:标量函数、内联表值函数和多语句表值函数。 1. **标量函数**: 标量函数返回单个值,可以是任何SQL Server支持的数据类型。在创建标量函数时,其语法包括`CREATE ...

    sql server 自定义函数

    ### SQL Server 用户自定义函数详解 #### 一、概述 在SQL Server中,用户自定义函数(User-Defined Functions, UDFs)允许开发者创建能够执行特定任务并返回结果的自定义逻辑。这些函数不仅可以增强SQL Server的功能...

    Sqlserver 2014 之 自定义字符串聚合函数

    下面是一个可能的`STRING_AGG`自定义函数的C#实现概述: ```csharp using System; using System.Collections.Generic; using Microsoft.SqlServer.Server; [Serializable] [SqlUserDefinedAggregate( Format.User...

    SQL_Server_用户自定义函数.pdf

    根据函数返回值形式的不同,SQL Server中的用户自定义函数主要分为以下三种类型: ##### 1. 标量函数 标量函数是最基本的一种函数类型,其返回一个确定类型的标量值。标量函数的返回值类型除了TEXT、NTEXT、IMAGE、...

    SQL自定义函数的好处

    SQL自定义函数可以分为三种类型:标量型函数、内联表值型函数和多声明表值型函数。 标量型函数是指返回一个确定类型的标量值的函数,例如返回一个整数或字符串等。它的返回值类型可以是除TEXT、NTEXT、IMAGE、...

    自定义函数

    在SQL中,自定义函数允许用户定义可重复使用的代码块,这些代码块可以接受输入参数,并返回结果。自定义函数不仅可以简化复杂的查询过程,还可以提高代码的可读性和可维护性。此外,它们还支持多种返回类型,如标量...

    SQL自定义函数讲解

    SQL函数主要分为三类:系统函数、用户自定义函数(UDF)和聚合函数。系统函数是SQL服务器预先定义好的,如数学函数、日期和时间函数、字符串函数等,它们提供了一种标准的方式来处理特定的数据类型或执行特定的操作...

    自定义聚合函数:用户定义的聚合函数——评估SQL Server 2005中的新功能.pdf

    在SQL Server 2005中,用户定义的聚合函数(User-Defined Aggregates, UDA)是一项新功能,允许开发人员通过.NET Framework的公共语言运行库(Common Language Runtime, CLR)创建自定义的聚合操作。这项特性扩展了...

    Sql Server数据库中自定义拆分字符串函数Split()

    Sql Server数据库中自定义拆分字符串函数Split()

    用户自定义函数

    在 SQL Server 中,用户自定义函数可以使用 CREATE FUNCTION 语句创建。例如,下面的代码创建了一个名为 average 的 scalar-valued 函数,该函数计算指定课程号的平均成绩: ```sql CREATE FUNCTION average(@cnum ...

    SQL Server数据库自定义函数与存储过程研究.pdf

    SQL Server 提供了两种主要的数据库编程对象:用户自定义函数(UDF)和存储过程(SP),两者都用于封装 SQL 代码以供重用。 函数是返回确定类型值的代码块,分为标量函数和表值函数。标量函数返回单一值,而表值...

    实验三:SQL-Server用户自定义函数、存储过程和触发器.doc

    实验三主要涵盖了SQL Server中的三个核心概念:用户自定义函数、存储过程和触发器,这些都是数据库管理和编程的重要组成部分。下面将详细解释这些知识点。 1. **用户自定义函数**: 用户自定义函数(UDF)允许用户...

    SQL自定义函数解密

    在数据库管理中,SQL自定义函数是开发者为了满足特定业务需求而创建的一种扩展功能。通常情况下,这些函数可以提高查询效率并简化复杂操作。而在安全性要求较高的场景下,开发者可能会选择对某些函数或存储过程进行...

    T_sql中的用户自定义函数及其应用.pdf

    在探讨T-SQL(Transact-SQL,是Microsoft SQL Server使用的SQL方言)中用户自定义函数及其应用时,首先需要了解用户自定义函数(User-Defined Functions,UDF)是数据库开发中用于封装特定功能的一段代码,它能够...

    SQL中Table类型的数据与用户自定义函数

    SQL Server 2000中的用户定义函数(User-Defined Functions, UDFs)是另一个增强功能,允许开发人员自定义函数来满足特定需求。用户定义函数分为两大类:内置函数和用户定义函数。内置函数是由系统提供的,只能在T-...

    sql2000的自定义函数,传入汉字返回汉字拼音

    在SQL Server 2000中,开发自定义函数(UDF)可以帮助用户扩展数据库系统的功能,以满足特定的需求。本案例中,我们讨论的是一个用于处理汉字并返回其拼音的UDF。这个函数对于那些需要进行基于拼音的搜索、排序或者...

    在sql Server自定义一个用户定义星期函数

    在SQL Server中,自定义用户定义函数(UDF)是一种扩展数据库功能的方法,允许开发者创建自己的函数来处理特定的数据计算或逻辑操作。在本例中,我们关注的是一个用于统计和展示周别统计报表的星期函数。这个函数的...

    sqlserver中的自定义函数的方法小结

    在SQL Server中,自定义函数是用户为了满足特定计算需求而创建的可重用代码单元。它们能够接收参数,执行一系列操作,并返回一个值或一组值。本文将深入探讨SQL Server中的自定义函数,包括标量值函数和表值函数。 ...

Global site tag (gtag.js) - Google Analytics