在存储过程中使用参数以及循环

存储过程中使用参数

-- =============================================
-- Author:ChaiChunyan
-- Create date: <Create Date,,>
-- Description: <查询某专业某班级的课程表>
-- =============================================
ALTER PROCEDURE GETCELL
@a int,
@b int,
@c int,
@d int    --定义形参,注意此时要使用","而不是";"
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

declare @pcoursenum int;        --节次 1-10
declare @classid int;         --班级ID
declare @start int;  --开始周
declare @end int;  --结束周

set @classid = @a
set @pcoursenum= @b  
set @start= @c
set @end= @d           --根据传递的形参对要查询的条件赋值
select curriculumschedule.monday,cl.teacherid
from curriculumschedule right join(
 select id,teacherid from classcourse where weekstart between @start and @end
) as cl on cl.id=curriculumschedule.monday
where curriculumschedule.classid=@classid and curriculumschedule.coursenum=@pcoursenum

END


查询的时候
语句为
GetCELL 1,1,1,1   (此处只是示例,表示传递四个为整型的参数)
当为字符串的时候要加 ''

int i, j;
i = j = 1;      
DataTable dt = dbo.SelectToDataTableByProc("getcell "+i.ToString()+","+j.ToString()+"");


当在存储过程中要使用循环时
例:

--使用存储过程循环写入数据    
declare @i int
set @i=1
while @i<10
begin
insert into Table(字段信息)values(值信息)
set @i=@i+1
end
 

你可能感兴趣的:(JOIN,c,Date,table,存储,insert)