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
您可能感兴趣
- sql server 分布式事务(Sql Server事务语法及使用方法实例分析)
- sqlserver 添加分区(SQL Server 数据库分区分表水平分表详细步骤)
- SQL Server ltrimrtrim函数的用法(SQL Server ltrimrtrim 去不掉空格的原因分析)
- sql server go语句
- 怎么新建数据库登录名用sql语句(T-sql语句修改SQL Server数据库逻辑名、数据库名、物理名的方法)
- sqlserver游标实例(Sql Server临时表和游标的使用小结)
- sql server2008脚本执行(在Sql Server中调用外部EXE执行程序引发的问题)
- SQL SERVER存储过程调试
- sqlserver数据库实时同步(SQL Server实时同步更新远程数据库遇到的问题小结)
- sqlserver中根据类型分组(SQL SERVER 分组求和sql语句)
- sqlserver查看创建的索引(浅述SQL Server的聚焦强制索引查询条件和Columnstore Index)
- sqlserver触发器循环条件(SQL Server 利用触发器对多表视图进行更新的实现方法)
- sqlserver列数据拆分(SQL Server基础之行数据转换为列数据)
- sql server 管理日志可以删除吗(SQL Server查看login所授予的具体权限问题)
- sqlserver游标使用场景(解析SQL Server聚焦移除Bookmark Lookup、RID Lookup、Key Lookup)
- 阿里云sql server 2012(远程连接阿里云SqlServer 2012 数据库服务器的图文教程)
- NVIDIA显卡份额冲上88 A饭发愁 游戏优化恐没A卡份了(NVIDIA显卡份额冲上88A饭发愁)
- AMD YES A卡还是N卡 A卡和N卡的区别(AMDYESA卡还是N卡)
- 以后显卡多了一个新选择,N卡和A卡外又多了个I卡(以后显卡多了一个新选择)
- 读卖乐园的彩灯(读卖乐园的彩灯)
- 新疆80后在淘宝卖干果 以前是 不务正业 如今帮乡亲致富(新疆80后在淘宝卖干果)
- 弄清楚了销 售 买 卖这四个字,母婴生意做起来就没那么难了(弄清楚了销售买)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9