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

 更新时间:2010年06月11日 01:22:18   作者:  
“自定义函数”是我们平常的说法,而“用户定义的函数”是 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 select id, title from 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 语句调用扩展存储过程。

相关文章

  • SQL Server中锁的用法

    SQL Server中锁的用法

    这篇文章介绍了SQL Server中锁的用法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • 在SQLserver数据库之间进行传表和传数据的图文教程

    在SQLserver数据库之间进行传表和传数据的图文教程

    这篇文章主要介绍了在SQLserver数据库之间进行传表和传数据的图文教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • SQL Server导入.mdf方法的错误处理方法

    SQL Server导入.mdf方法的错误处理方法

    导入mdf文件和ldf文件到数据库是网站搬家或者是初学者学习源码是必要的一步,下面这篇文章主要给大家介绍了关于SQL Server导入.mdf方法的错误处理方法,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • Spark临时表tempView的注册/使用/注销/注意事项(推荐)

    Spark临时表tempView的注册/使用/注销/注意事项(推荐)

    transformation是根据原有RDD创建一个新的RDD,而action则把RDD操作后的结果返回给driver,这篇文章主要介绍了Spark临时表tempView的注册/使用/注销/注意事项的相关资料,需要的朋友可以参考下
    2022-10-10
  • sql 语句 取数据库服务器上所有数据库的名字

    sql 语句 取数据库服务器上所有数据库的名字

    sql 语句 取数据库服务器上所有数据库的名字,一般作者自己是没问题了。
    2009-02-02
  • Sql学习第二天——SQL DML与CTE概述

    Sql学习第二天——SQL DML与CTE概述

    关于DML即数据操纵语言;关于CTE即公用表表达式,接下来为大家介绍下CTE使用的地方以及优点同时提供一个简单的CTE例题,感兴趣的各位可以参考下哈
    2013-03-03
  • SQL 中的For Xml Path详解

    SQL 中的For Xml Path详解

    今天就给大家介绍一下FOR XML PATH,它就是用来处理低版本数据库中数据合并的,是一个比较古老的功能了,新版本中也依然还能使用,对SQL 中的For Xml Path相关知识感兴趣的朋友一起看看吧
    2022-08-08
  • win11安装sqlserver失败的详细解决方案

    win11安装sqlserver失败的详细解决方案

    这篇文章主要给大家介绍了关于win11安装sqlserver失败的详细解决方案,文中通过图文介绍的非常详细,对大家学习或者SqlServer具有一定的参考学习价值,需要的朋友可以参考下
    2023-04-04
  • SQL Server 查询死锁及解决死锁的基本知识(最新整理)

    SQL Server 查询死锁及解决死锁的基本知识(最新整理)

    在 SQL Server 中,死锁是指两个或多个进程互相等待对方持有的资源,从而无法继续执行的现象,这篇文章主要介绍了SQL Server 查询死锁以及解决死锁的基本知识,需要的朋友可以参考下
    2024-07-07
  • SQL函数substr使用简介

    SQL函数substr使用简介

    文章是介绍了sql中的substr()字符串截取函数的用法,十分的简单实用,有需要的同学可以参考一下。
    2015-05-05

最新评论