写sql存储过程经常需要调用一些函数来使处理过程更加合理,也可以使函数复用性更强,不过在写sql函数的时候可能会发现,有些函数是在表值函数下写的有些是在标量值下写的,区别是表值函数只能返回一个表,标量值函数可以返回基类型。
1.创建函数
IF EXISTS ( SELECT 1 FROM SYSOBJECTS WHERE NAME = 'uf_getTableA')
DROP FUNCTION uf_getTableA
GO
/******************************************************************************************************
%% 名称: uf_getTableA
%%
%% 参数: 无
%%
%% 返回: 有效的XX规则表
%%
%% 描述: 返回有效的XX规则
%%
******************************************************************************************************
%% 编写: faith 2013.05.09
%%
******************************************************************************************************/
CREATE FUNCTION [dbo].[uf_getTableA]()
RETURNS TABLE
AS
RETURN
(
SELECT *
from TableA d
where d.is_valid='T'
and d.start_time<=GETDATE()
and d.end_time>=GETDATE()
and d.verify_stat='1'
)
GO
2.在存储过程中调用
SELECT d.name from uf_getTableA() d order by d.level desc
1.创建函数
IF EXISTS ( SELECT 1 FROM SYSOBJECTS WHERE NAME = 'uf_getTableA')
DROP FUNCTION uf_getTableA
GO
/******************************************************************************************************
%% 名称: uf_getTableA
%%
%% 参数: 无
%%
%% 返回: 有效的XX规则表
%%
%% 描述: 返回有效的XX规则
%%
******************************************************************************************************
%% 编写: faith 2013.05.09
%%
******************************************************************************************************/
CREATE FUNCTION [dbo].[uf_getTableA]()
RETURNS TABLE
AS
RETURN
(
SELECT *
from TableA d
where d.is_valid='T'
and d.start_time<=GETDATE()
and d.end_time>=GETDATE()
and d.verify_stat='1'
)
GO
2.在存储过程中调用
SELECT d.name from uf_getTableA() d order by d.level desc