SQL SEREVER中的自定义函数

目录

1. 表量型函数

 2. 内联表值型函数

 3. 多语句表值型函数

 管理用户自定义函数

        SQL SERVER的函数是由一个或多个TSQL语句组成的用于实现某种功能的子程序,可以封装实现某功能的TSQL语句组以实现代码的重用。

        用户可以根据自己的需求编写自定义函数,而自定义函数根据输出的类型可以分为以下三种:

1. 表量型函数

        标量型函数返回的是某种常规的数据类型,如INT、nchar等,但不能是text、ntext、image和timestamp。

CREATE FUNCTION function_name
    (<@形参名> <数据类型>[,...n])
    RETURNS <返回值数据类型>
AS
BEGIN
    <TSQL语句>
    RETURN <返回表达式>
END
--函数功能当输入需要查询的产品ID时返回产品名称
GO
CREATE FUNCTION inquire_ProductName
	(@Product_ID nvarchar(50))
	RETURNS NVARCHAR(255)
AS
BEGIN
	DECLARE @ProductName nvarchar(255)
	SELECT @ProductName=[产品名称] FROM [产品数据]
	WHERE [产品ID]=@Product_ID
	RETURN @ProductName
END

 2. 内联表值型函数

        对于内联表值型函数,没有函数主体,表是单个SELECT语句的结果集,返回的类型是TABLE数据类型(可以理解为返回一个表)

CREATE FUNCTION <function_name>
    ([<@形参名> <数据类型>[,...n]])
    RETURNS TABLE
AS
    RETURN(SELECT 查询语句)
--函数功能:提供一个产品ID,返回该产品ID的所有信息
GO
CREATE FUNCTION inquire_AllInfo
(@productId nvarchar(255))
RETURNS TABLE
AS
	RETURN(SELECT * FROM [产品数据]
			WHERE 产品ID=@productId)

 3. 多语句表值型函数

        多语句表值型函数,返回的数据类型为表,但是不同于内联表值型函数,返回的表可以再定义,自己定义表的结构,在函数体中将符合条件的数据插入该表并返回。

CREATE FUNCTION <function_name>
([<@形参名> <数据类型>[,...n]])
RETURNS <@返回变量> TABLE(表结构定义)
AS
BEGIN
    <TSQL语句>
    RETURN
END
--函数功能:输入产品ID返回该产品的所有信息
GO
CREATE FUNCTION inquire_ALLInfomation
(@ProductId nvarchar(255))
RETURNS @tb TABLE(
	产品ID NVARCHAR(255),
	产品名称 NVARCHAR(255),
	子类别 NVARCHAR(255),
	类别 NVARCHAR(255)
)
AS
BEGIN
	INSERT INTO @tb SELECT * FROM [产品数据] 
					WHERE [产品ID]=@ProductId
	RETURN
END

 4.管理用户自定义函数

1. 查看用户自定义函数的TSQL语句

EXEC sp_helptext <function_name>
|EXEC sp_help <function_name>

 2. 修改用户定义的函数

将关键字CREATE改为ALTER即可。

3. 删除用户定义函数

DROP FUNCTION <function_name>

  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值