存储过程——存储过程与函数(四)
- 函数的定义:
于编程语言中的函数类似,sql server 用户定义函数是接受参数,执行操作(如复杂运算)并将操作结果以值的形式返回的例程。返回值可以是单个标量值或结果集。
- 函数的优点:
- 允许模块化程序设计
- 执行速度快
- 减少网络流量
- 函数分类
- 系统函数
- 用户自定义函数
- 标量函数
- 表值函数
上面说了这么多理论化的东西,下面介绍一个例子来说明:
创建一个根据产品类型来查询产品信息的函数(表值函数)
-- ============================================= -- Author: <Author,,Name> -- 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 AS RETURN ( 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) AS BEGIN -- 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 @typeName END GO
标量函数调用
--测试标量函数 SELECT [ID] ,[Name] ,[Price] ,[Address] ,[Type]=dbo.FN_getproducttypebyId(Type) FROM [wisdominfo].[dbo].[product]
上述调用函数类似于调用了联合查询,或子查询
- 函数在存储过程应用如下
CREATE PROCEDURE GetProinfo AS BEGIN SELECT [ID] ,[Name] ,[Price] ,[Address] ,[Type] ,TypeName=dbo.FN_getproducttypebyId(Type) FROM [wisdominfo].[dbo].[product] END GO
以上是个人总结部分,由不太详细指出,希望大家指出,本人将继续改进,提交代码质量,文章可读性...
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库