- SQL code
@StockCode nvarchar(50),@days intasselect min(LowestPrice)from(select top (@days) LowestPricefrom Stockswhere [email protected]order by UpdateTime desc)t
这是一个在SQLServer 2005 EXPRESS版本里写的存储过程,
可是在远程空间上的数据库里会出错, 好像是2000版本不支持top (@days) 这样的写法,
请问我应该怎样改呢?
------解决方案--------------------
[code=sql]
--用动态sql
xec SP_EXECUTESQL @sql语句
[/code]
------解决方案--------------------
- SQL code
--用动态sql Exec SP_EXECUTESQL @sql语句
------解决方案--------------------
- SQL code
declare @sql varchar(8000)set @sql='select min(LowestPrice)from(select top '+ltrim(@days)+' LowestPricefrom Stockswhere [email protected]order by UpdateTime desc)t 'exec (@sql)
------解决方案--------------------
- SQL code
--两个变量,都需要从外面传进去declare @sql varchar(8000)set @sql='select min(LowestPrice)from(select top '+ltrim(@days)+' LowestPricefrom Stockswhere [email protected]+' order by UpdateTime desc)t 'exec (@sql)
------解决方案--------------------
- SQL code
declare @sql nvarchar(max)set @sql='select min(LowestPrice)from(select top ([email protected]+') LowestPricefrom Stockswhere [email protected]+'''order by UpdateTime desc)t'
------解决方案--------------------
- SQL code
exec sp_executesql @sql
------解决方案--------------------
- SQL code
@StockCode nvarchar(50),@days intasdeclare @sql varchar(8000)set @sql='select min(LowestPrice)from(select top '+ltrim(@days)+' LowestPricefrom Stockswhere [email protected]+''' order by UpdateTime desc)t 'exec (@sql)