create procedure sp_getSomeArticle
@articlenum int
as
select top @articlenum articleid,title,addtime,author,browsetime from dt_article order by addtime desc
go
...全文
864打赏收藏
存储过程参数的使用
代码如下,我想取top @articlenum的数据,但是程序提示@articlenum错误,不知该如何解决 create procedure sp_getSomeArticle @articlenum int as select top @articlenum articleid,title,addtime,author,browsetime from dt_article order by addtime desc go
create procedure sp_getSomeArticle
@articlenum int
as
declare @sql nvarchar(200)
set @sql = 'select top ' + cast(@articlenum as nvarchar“此处是否应该改为int??”) + ' From Mytable'
sp_executesql @sql
go
同意楼上。
不过楼上的少了个exec呵呵。
create proc sp_Test
@topnum int,@id int
--假设需要检索id<@id的记录
as
declare @sql nvarchar(1000)
set @sql = 'select top ' + cast(@topnum as nvarchar) + ' From Tablexx where id<@SPid'
exec sp_executesql @sql,N'@SPid int',@SPid=@id
这个应该用参数化查询用
例如:
create procedure sp_getSomeArticle
@articlenum int
as
declare @sql nvarchar(200)
set @sql = 'select top ' + cast(@articlenum as nvarchar) + ' From Mytable'
sp_executesql @sql
go