当前位置:   article > 正文

SQL SEREVER中的自定义函数_sql server function

sql server function

目录

1. 表量型函数

 2. 内联表值型函数

 3. 多语句表值型函数

 管理用户自定义函数

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

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

1. 表量型函数

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

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

 2. 内联表值型函数

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

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

 3. 多语句表值型函数

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

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

 4.管理用户自定义函数

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

  1. EXEC sp_helptext <function_name>
  2. |EXEC sp_help <function_name>

 2. 修改用户定义的函数

将关键字CREATE改为ALTER即可。

3. 删除用户定义函数

DROP FUNCTION <function_name>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/738009
推荐阅读
相关标签
  

闽ICP备14008679号