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中查看某个时间段内出错的作业
- sql server2008自动备份数据(SQL Server数据库定时自动备份)
- sql server查询语句语法(详解SQL Server的简单查询语句)
- sql join速度慢(SQL Server 使用join all优化 or 查询速度)
- SQL SERVER存储过程调试
- Sql Server系统数据库的作用
- sql server2008无法连接怎么办(SQL Server 2008 R2登录失败的解决方法)
- sqlserver2012海量数据查询(SQL Server 2012 多表连接查询功能实例代码)
- sqlserver厉害的函数(SQL Server里书签查找的性能伤害)
- sqlserver2016使用教程(SQL Server 2016 Alwayson新增功能图文详解)
- SQL Server 数据库自动备份
- sql server 字符串处理(SQL Server中利用正则表达式替换字符串的方法)
- sql server 高并发update 死锁(解密新型SQL Server无文件持久化恶意程序的问题)
- SQL Server锁类型
- sql server占cpu高
- 涉及3条地铁线路 成都这4座轨道交通站点有新名字了(涉及3条地铁线路)
- 来了 成都轨道交通5条线路刷新 进度条(成都轨道交通5条线路刷新)
- 一部手机两套系统 OPPO Find X3的正确打开方式你知道吗(一部手机两套系统)
- OPPO用户看过来 汇总几个春节实用技巧,轻松搞定多设备联动玩法(汇总几个春节实用技巧)
- 北京旅游攻略(北京旅游攻略5日游及其花费)
- 四川旅游攻略(四川旅游攻略自由行攻略)
热门推荐
- laravel自定义数据库驱动(laravel框架数据库配置及操作数据库示例)
- dedecms手机页面怎么固定(织梦dedecms配置手机wap站点并绑定二级域名)
- phpredis高级用法(PHP Redis扩展无法加载的问题解决方法)
- sqlserver查询自定义时间数据(SQLServer查询某个时间段购买过商品的所有用户)
- 十问linux虚拟内存(浅谈Linux的虚拟内存)
- apache配置说明(深入apache host的配置详解)
- php面向对象编程代码(php面向对象程序设计入门教程)
- docker怎么装mongodb(Docker 搭建集群MongoDB的实现步骤)
- label for属性
- apache服务部署tomcat(详解Apache 和 Tomcat 整合原理、配置方案)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9