关于存储过程的一个输入参数问题
create procedure getuseasset_one_month_rs
@btime datetime,
@etime datetime,
@ids int,
@count int
as
select top @count names,zcname,onemoney,times from useasset where times between @btime and @etime and ids=@ids order by times desc
go
想把 top 10 后面的数改为输入参数传,可编译不过,是那里错了呢?
------解决方案--------------------改正一下
alter procedure getuseasset_one_month_rs
@btime datetime,
@etime datetime,
@ids int,
@count int
as
declare @sql varchar(8000)
set @sql= '
select top '+rtrim(@count)+ ' names,zcname,onemoney,times from useasset where convert(char(10),times,120) between ' ' '+convert(char(10),@btime,120)+ ' ' ' and ' ' '+convert(char(10),@etime,120)+ ' ' ' and ids= '+rtrim(@ids)+ ' order by times desc '
print(@sql)
go