create proc Pr_datetimeselect
as
begin
declare @sql nvarchar(1000);
declare @str nvarchar(1000);
--declare @i int;
--declare @j int;
--set @i=1;
--set @j='select count(*) from dbo.DateTimes';
--while @i>@j
begin
set @sql='select top 1 substring(convert(varchar(100),NowTime,23),0,5) from dbo.DateTimes';
exec(@sql);
set @str='select convert(varchar(100),NowTime,23) as times from dbo.DateTimes where NowTime like ''%'+ @sql+'%''';
exec(@str);
--set @i=@i+1;
--break;
end
end这段代码为什么返回为空勒select convert(varchar(100),NowTime,23) as times from dbo.DateTimes where NowTime like '%2007%' 这段代码就可以
as
begin
declare @sql nvarchar(1000);
declare @str nvarchar(1000);
--declare @i int;
--declare @j int;
--set @i=1;
--set @j='select count(*) from dbo.DateTimes';
--while @i>@j
begin
set @sql='select top 1 substring(convert(varchar(100),NowTime,23),0,5) from dbo.DateTimes';
exec(@sql);
set @str='select convert(varchar(100),NowTime,23) as times from dbo.DateTimes where NowTime like ''%'+ @sql+'%''';
exec(@str);
--set @i=@i+1;
--break;
end
end这段代码为什么返回为空勒select convert(varchar(100),NowTime,23) as times from dbo.DateTimes where NowTime like '%2007%' 这段代码就可以
where NowTime like '%2007%'是日期用 year(NowTime)=2007
1.EXEC执行sql语句的情况declare @rsql varchar(250)declare @csql varchar(300)declare @rc nvarchar(500)declare @cstucount intdeclare @ccount intset @rsql='(select Classroom_id from EA_RoomTime where zc='+@zc+' and xq='+@xq+' and T'+@time+'=''否'') and ClassroomType=''1'''--exec(@rsql)set @csql='select @a=sum(teststucount),@b=sum(classcount) from EA_ClassRoom where classroom_id in 'set @rc=@csql+@rsqlexec sp_executesql @rc,N'@a int output,@b int output',@cstucount output,@ccount output--将exec的结果放入变量中的做法--select @csql+@rsql--select @cstucount上面的@rc这个HTMLsql语句的功能是找出特定时间段里所有有空的教室数量以及这些教室所能容纳的学生人数,因为涉及到学习动态的sql语句(@csql这句里条件中有一个HTML列名是动态变化的)的构造,所以要放在exec里执行,但是同时我勱又要返回2个HTML结果,所以执行时的代码为:
exec sp_executesql @rc,N'@a int output,@b int output',@cstucount output,@ccount output--将exec的结果放入变量中的做法
这样就将返回值放到学习了,@cstucount,@ccount两个HTML变量中,得到学习了我勱们想要的结果。
2.exec执行带返回值的存储过程的情况
我勱们来看一个HTML简单的存储过程:
create procedure ProTest(@name varchar(10),@money int output)asbeginif(@name='1')set @money=1000elseset @money=2000end这个HTML只是一个HTML简单的示例,这个HTML存储过程返回的是@money 这个HTML参数的值,那么当我勱们在另外一个HTML存储过程中调用此存储过程的时候如何获取这个HTML参数呢,方法如下:
declare @m int ---用来接收返回值的变量exec ProTest @name='1',@money=@m output --一定要注名是output就这么简单,我勱们就获得了返回值。