sql server 自定义函数
类别:数据库 浏览量:413
时间:2016-7-17 sql server 自定义函数
sql server 自定义函数一、在Microsoft SQL Server Managerment Studio中找到自定义函数的地方
在Microsoft SQL Server Managerment Studio里面,展开具体需要创建SQL Server用户自定义函数的数据库(即每个用户自定义函数只针对具体的一个数据库有用),然后找到可编程性选项,再展开找到函数选项,在具体的函数选项里面可参照下图的方式鼠标右键选择来添加、修改
二、SQL Server用户自定义的函数的种类
1、标量函数
所谓标量函数简单点来讲就是返回的结果只是一个标量,对于我来讲,返回的结果就是一种类型的一个值。
(1)、语法
Create function 函数名(参数)
Returns 返回值数据类型
[with {Encryption | Schemabinding }]
[as]
begin
SQL语句(必须有return 变量或值)
End
(2)、简单实例
Create function AvgResult(@scode varchar(10))
Returns real
As
Begin
Declare @avg real
Declare @code varchar(11)
Set @code=@scode + ‘%’
Select @avg=avg(result) from LearnResult_baijiali
Where scode like @code
Return @avg
End
(3)、调用方式
declare @avg1 real ,@avg2 real ,@avg3 real
select @avg1= dbo.AvgResult(‘s0002’)
set @avg2= dbo.AvgResult(‘s0002’)
exec @avg3= dbo.AvgResult ‘s0002’
[2]、函数引用
select name from class where ccode = dbo.AvgResult(‘c001’)
2、内联表值函数
相对于标量函数只返回一个标量值,内联表值函数返回的是表数据。表数据就是Table类型。
(1)、语法
create function 函数名(参数)
returns table
[with {Encryption | Schemabinding }]
as
return(一条SQL语句)
(2)、简单实例
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [GetMoreThanSalary]
(
@salary int
)
RETURNS TABLE
AS
RETURN
(
SELECT [FName],[FCity],[FAge],[FSalary] FROM [Demo].[dbo].[T_Person] Where [FSalary] > @salary
)
GO
select [FName],[FCity],[FAge],[FSalary] from [dbo].[GetMoreThanSalary](8000)
(1)、语法
create function 函数名(参数)
returns 表格变量名table (表格变量定义)
[with {Encryption | Schemabinding }]
as
begin
SQL语句
end
(2)、与 内联表值函数的异同
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER FUNCTION DemoFun
(
)
RETURNS
@result TABLE
(
name nvarchar(20),
city nvarchar(20),
age int,
salary int
)
AS
BEGIN
-- Fill the table variable with the rows for your result set
insert into @result(name, city, age, salary)
select FName,FCity,FAge,FSalary from dbo.T_Person where FSalary>8000
insert into @result(name, city, age, salary) values
('测试','China', 1, 0)
RETURN
END
GO
标签:sql server
您可能感兴趣
- sqlserver存储过程使用变量(浅析SQL Server的嵌套存储过程中使用同名的临时表怪像)
- sql server与erp的结合应用(SQL Server中with as使用介绍)
- SQL SERVER中调用存储过程
- sql server 2014配置文件路径(SQL Server 2012 FileTable 新特性详解)
- SQL SERVER ErrorLog文件
- sqlserver 比较日期(解析SQL Server中SQL日期转换出错的原因)
- sql提交事务代码(SQL SERVER提交事务回滚机制)
- 数据库sql位置更换磁盘(SQL SERVER迁移之更换磁盘文件夹的完整步骤)
- sqlserver拒绝访问怎么办(SQL server服务显示远程过程调用失败的解决方法)
- sql server2008自动备份数据(SQL Server数据库定时自动备份)
- sqlserver的图形表(SQL Server纵表与横表相互转换的方法)
- sqlserver常用配置调整(sql server性能调优 I/O开销的深入解析)
- sqlserver2012如何安装如何使用(Sql server 2012 中文企业版安装图文教程附下载链接)
- sqlserver 存储过程(SQL Server解析XML数据的方法详解)
- sqlserver代理无法启动错误1607(SQL Server代理:理解SQL代理错误日志处理方法)
- sqlserver如何可视化表(sql server使用公用表表达式CTE通过递归方式编写通用函数自动生成连续数字和日)
- 为什么现在社会越来越卷了(现在社会为什么发展那么快呢)
- 直播带货能赚到很多钱吗(直播带货能赚到很多钱吗现在)
- 做网红真的很能赚钱吗(做网红真的很能赚钱吗)
- 10句英语常用(英语常用900句)
- 爱情能当饭吃吗(爱情能当饭吃吗说说)
- 白T恤穿法(白t恤)
热门推荐
- linux双网卡热备配置超详细(linux 使用bond实现双网卡绑定单个IP的示例代码)
- php微信支付流程(PHP实现微信退款的方法示例)
- nginx中https配置(Nginx配置同一个域名同时支持http与https两种方式访问实现)
- plsql常用函数
- vue实现列表向上滚动更新(vue实现列表无缝滚动)
- Global.asax文件的介绍
- docker-compose 原理(详解docker compose 用法)
- idea的tomcat怎么关闭(解决Idea的tomcat启动报多个listener的错误问题)
- 阿里云服务器扩容了怎么恢复(一条命令解决阿里云服务器系统盘空间不足问题)
- html中hr标签
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9