博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
存储过程——存储过程与函数(四)
阅读量:5092 次
发布时间:2019-06-13

本文共 1607 字,大约阅读时间需要 5 分钟。

  • 函数的定义:

于编程语言中的函数类似,sql server 用户定义函数是接受参数,执行操作(如复杂运算)并将操作结果以值的形式返回的例程。返回值可以是单个标量值或结果集。

  • 函数的优点:
  1. 允许模块化程序设计
  2. 执行速度快
  3. 减少网络流量
  • 函数分类
  1. 系统函数
  2. 用户自定义函数
  • 标量函数
  • 表值函数

上面说了这么多理论化的东西,下面介绍一个例子来说明:

 创建一个根据产品类型来查询产品信息的函数(表值函数)

-- =============================================-- Author:        
-- Create date: 2014-04-11 21:10:42-- Description: 根据产品类型查询产品-- =============================================CREATE FUNCTION [dbo].[FN_getproductbyCondition]( -- Add the parameters for the function here @condition nvarchar(200))RETURNS TABLE ASRETURN ( select * from product where Type=@condition)

调用函数如下:

select * FROM FN_getproductbyCondition(2)--实际上等同于select * from [dbo].[product] where Type=2

标量函数建立

CREATE FUNCTION FN_getproducttypebyId(    -- Add the parameters for the function here    @typeid int)RETURNS nvarchar(50)ASBEGIN    -- Declare the return variable here    --返回值    DECLARE @typeName nvarchar(50)    -- Add the T-SQL statements to compute the return value here    --执行sql语句    SELECT @typeName=Name from [dbo].[productType] where id=@typeid    -- Return the result of the function    --返回结果    RETURN @typeNameENDGO

标量函数调用

--测试标量函数SELECT [ID]      ,[Name]      ,[Price]      ,[Address]      ,[Type]=dbo.FN_getproducttypebyId(Type)  FROM [wisdominfo].[dbo].[product]

上述调用函数类似于调用了联合查询,或子查询

  • 函数在存储过程应用如下
CREATE PROCEDURE GetProinfo ASBEGIN    SELECT [ID]      ,[Name]      ,[Price]      ,[Address]      ,[Type]      ,TypeName=dbo.FN_getproducttypebyId(Type)  FROM [wisdominfo].[dbo].[product]ENDGO

以上是个人总结部分,由不太详细指出,希望大家指出,本人将继续改进,提交代码质量,文章可读性...

 

 

转载于:https://www.cnblogs.com/tuqun/p/3657684.html

你可能感兴趣的文章
关于ExecuteNonQuery执行的返回值(SQL语句、存储过程)
查看>>
UVa540 Team Queue(队列queue)
查看>>
mysql数据增删改查
查看>>
akka之种子节点
查看>>
不知道做什么时
查看>>
matlab 给某一列乘上一个系数
查看>>
密码学笔记——培根密码
查看>>
Screening technology proved cost effective deal
查看>>
MAC 上升级python为最新版本
查看>>
创业老板不能犯的十种错误
查看>>
Animations介绍及实例
查看>>
判断请求是否为ajax请求
查看>>
【POJ2699】The Maximum Number of Strong Kings(网络流)
查看>>
spring boot配置跨域
查看>>
BZOJ 1996 合唱队(DP)
查看>>
进击吧!阶乘——大数乘法
查看>>
安卓学习资料推荐-25
查看>>
Mysql数据库备份和还原常用的命令
查看>>
关于退出当前页面在火狐的一些问题
查看>>
【项目实施】项目考核标准
查看>>