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日期转换出错的原因)
- sqlserver怎么手动添加数据库表(SQL Server 数据库调整表中列的顺序操作方法及遇到问题)
- SQL SERVER获取指定数据库中所有存储过程的参数
- sqlserver百分比数据查询时间(SQL Server统计信息更新时采样百分比对数据预估准确性的影响详解)
- SQL Server中找出执行时间过长的作业
- sqlserver分页数据重复(SQL Server 在分页获取数据的同时获取到总记录数)
- sql server 报错(sql server利用不同语种语言显示报错错误消息的方法示例)
- sql server作业的调度信息中各列的含义
- sqlserver游标实例(Sql Server临时表和游标的使用小结)
- 数据库sql位置更换磁盘(SQL SERVER迁移之更换磁盘文件夹的完整步骤)
- Sql Server事件探查器的作用
- sqlserver技术文档(sql server2016里面的json功能浅析)
- sqlserver怎么修改表结构(SQL Server中修改“用户自定义表类型”问题的分析与方法)
- SQL SERVER与MySQL数据类型的对应关系
- sql server2008脚本执行(在Sql Server中调用外部EXE执行程序引发的问题)
- SQL Server Check 约束
- 吴启华与曾舜晞两代张无忌同框,戏里经典的他却没活出原著的潇洒(吴启华与曾舜晞两代张无忌同框)
- 经常发这三种 朋友圈 的人,要迅速屏蔽(经常发这三种朋友圈)
- 有种尴尬叫朋友圈忘屏蔽,大学生上演社死现场,父母亲自下场吐槽(有种尴尬叫朋友圈忘屏蔽)
- 朋友圈屏蔽你的人,可以直接看淡了(朋友圈屏蔽你的人)
- 金球奖只青睐那些会戴珠宝的女人(金球奖只青睐那些会戴珠宝的女人)
- 浙江省一个县,人口超40万,建县历史超1100年(浙江省一个县人口超40万)
热门推荐
- mybatissql解析(mybatis动态sql实现逻辑代码详解)
- dedecms添加底部链接(详解如何修改织梦模板dedeCMS友情链接为下拉式)
- python爬取百度搜索pdf文档(Python实现的爬取百度文库功能示例)
- 钉钉嵌入web端应用程序(钉钉企业内部H5微应用开发详解)
- dedecms打开新页面(DedeCMS 批量取消审核文档的实现方法)
- truncate和delete(delete、truncate、drop的区别以及该如何选择)
- 如何彻底关闭vmwareworkstation(关于vmware workstations与device/credential不兼容启动报错的问题)
- dataset用法
- 常见的web应用服务器有哪些(常用的web服务器软件整理)
- css样式中实现3d效果(利用纯CSS实现动态的文字效果实例)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9