编写函数
create function FunctionName
(
@functionparameter parametertype
)
returns @ReturnFunctionName table
(
returnDBfield DBtype
)
as
begin
insert into @ReturnFunctionName
select returnDBfield
from DBtable
return
end
GO
例子:
create function GetVehicleMsmLog
(
@ent_id int,
@veh_id int,
@start_date datetime,
@end_date datetime
)
returns @return_table table
(
ent_id int,
veh_id int,
x_loc float,
y_loc float,
speed float,
ignition bit,
measure_datetime datetime,
loc_string nvarchar(255),
cd datetime,
dallas_key nvarchar(12)
)
as
begin
insert into @return_table
select ent_id, veh_id, x_loc, y_loc, speed, ignition, measure_datetime, loc_string, cd, dallas_key
from t_veh_msm_log
where ent_id = @ent_id and veh_id = @veh_id
and measure_datetime between @start_date and @end_date
order by measure_datetime asc
return
end
GO
执行即可,就可以直接调用,调用query如下:
declare
@functionparameter parametertype
set @functionparameter=value
declare @ReturnFunctionName table
(
returnDBfield DBtype
)
insert into @ReturnFunctionName select * from FunctionName(@functionparameter)
select * from @ReturnFunctionName
例子:
declare
@start_date datetime, @end_date datetime,
@ent_id int, @veh_id int
set @start_date = '2008-09-02'
set @end_date = '2008-09-05'
set @ent_id = 49
set @veh_id = 5
declare @result_table table
(
ent_id int,
veh_id int,
x_loc float,
y_loc float,
speed float,
ignition bit,
measure_datetime datetime,
loc_string nvarchar(255),
cd datetime,
dallas_key nvarchar(12)
)
insert into @result_table select * from GetVehicleMsmLog(@start_date, @end_date,@ent_id , @veh_id)
select * from @result_table