小不好意思,请问如何执行一个生成临时表的存储过程
anya 2004-12-21 10:29:27 我想生成一个价格行情表,存储过程如下,现在知道起始时间、结束时间分别是lda_start,lda_end,
请问在.net(c#)中如何调用执行这个存储过程.小妹很愚笨,请多指教。
CREATE PROCEDURE OPR.WEB_SP_GETPRICESINFO
(
@startTime datetime ,
@endTime datetime
)
AS
if @startTime is null
begin
raiserror('没有指定要检索的单价的起始时间。', 16, 1)
return
end
if @endTime is null
begin
raiserror('没有指定要检索的单价的终止时间。', 16, 1)
return
end
if @startTime > @endTime
begin
declare @time datetime
set @time = @endTime
set @endTime = @startTime
set @startTime = @time
end
create table #WEB_PRICESINFO
(
CODE nvarchar(64) ,
NAME nvarchar(64) ,
ENAME nvarchar(64) ,
SPECCODE nvarchar(64) ,
SPECDESCRIPTION nvarchar(256) ,
AVGPRICE money ,
MAXPRICE money ,
MINPRICE money ,
PAVGPRICE money ,
REMARKS nvarchar(256) ,
SUMMARY nvarchar(1000)
)
declare @code bigint
declare @name nvarchar(64)
declare @abstract nvarchar(1000)
declare price_cur cursor for
select CODE, NAME, ABSTRACT from OPR.GBCODES where CATEGORY = 4001000
open price_cur
fetch next from price_cur into @code, @name, @abstract
while @@FETCH_STATUS = 0
begin
insert into #WEB_PRICESINFO
select convert(nvarchar(64), @code) ,
@name ,
substring(@abstract, 0, 64) ,
convert(nvarchar(64), SPECCODE) ,
N'' ,
avg(PRICE) ,
max(PRICE) ,
min(PRICE) ,
avg(PRICE) ,
N'IC 卡交易' ,
substring(@abstract, 65, len(@abstract) - 64)
from OPR.ICTRADES
where (OPR.ICTRADES.VEGCODE = @code) and (OPR.ICTRADES.FIRSTWEIGHTIME between @startTime and @endTime)
if @@ERROR <> 0
begin
close price_cur
deallocate price_cur
return
end
if @@ROWCOUNT = 0
begin
insert into #WEB_PRICESINFO values(convert(nvarchar(64), @code), @name, substring(@abstract, 0, 64), N'', N'', 0, 0, 0, 0, N'无交易记录', substring(@abstract, 65, len(@abstract) - 64))
if @@ERROR <> 0
begin
close price_cur
deallocate price_cur
return
end
end
fetch next from price_cur into @code, @name, @abstract
end
close price_cur
deallocate price_cur
select * from #WEB_PRICESINFO
return
GO