储存过程作为一种高效的数据处理方式,在软件开发过程中被广泛使用。当遇到繁琐的业务处理时,经常会写上成百上千行的代码,以达到目的,若此时又需要多数据集处理时,单一的存储过程显得臃肿笨拙。如何调理清楚、分工明确的进行过程编写显得尤为重要。
其实SQLServer为我们提供了一种非常简便的方式用来处理多数据集处理的问题。
下面一段存储过程为主存储过程,在这个存储过程中声明了一个变量@code,一个临时表#t,存储过程会根据参数@code查询出符合条件的数据插入到临时表#t。但是在查询语句后做了特殊处理。
CREATE PROCEDURE [dbo].[a_test]
@code varchar(50)
AS
BEGIN
SET NOCOUNT ON;
create table #t
(
code varchar(50),
name varchar(50)
)
declare @len varchar(2);
set @len=4;
insert into #t
select bcode,bname from fip_sys_Base where bcode =@code
insert into #t exec a_test_sub @code,@len
select * from #t
drop table #t
END
“insert into #t exec a_test_sub @code,@len”
在这里向临时表中插入了数据,数据的来源从子存储过程a_test_sub获得