首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQLServer存储过程的有关问题

2012-04-26 
SQLServer存储过程的问题SQL code@StockCode nvarchar(50),@days intasselect min(LowestPrice)from(selec

SQLServer存储过程的问题

SQL code
@StockCode nvarchar(50),@days intasselect min(LowestPrice)from(select top (@days) LowestPricefrom Stockswhere StockCode=@StockCodeorder 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 StockCode=@StockCodeorder by UpdateTime desc)t 'exec (@sql)
[解决办法]
SQL code
--两个变量,都需要从外面传进去declare @sql varchar(8000)set @sql='select min(LowestPrice)from(select top '+ltrim(@days)+' LowestPricefrom Stockswhere StockCode='+@StockCode+' order by UpdateTime desc)t 'exec (@sql)
[解决办法]
SQL code
declare @sql nvarchar(max)set @sql='select min(LowestPrice)from(select top ('+@days+') LowestPricefrom Stockswhere StockCode='''+@StockCode+'''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 StockCode='''+@StockCode+''' order by UpdateTime desc)t 'exec (@sql) 

热点排行