您的位置:首页 > 其它

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

2007-10-30 18:21 603 查看
存储过程中使用参数

-- =============================================
-- 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: