存储过程参数怎么使用

zjian_jiayou1 2012-03-12 12:17:10
--分页
create proc sel_fen
@tablename varchar(20),--表名
@pk varchar(20),--主键
@pagesize int=10,--每页多少条数据
@pagenumber int=1--当前页
as
begin
select top (@pagesize) * from @tablename where @pk not in ( select top ((@pagenumber-1)*@pagesize) @pk from prc_sp)
end


谁能帮我看看为什么老是说我变量未申明?
...全文
44 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
UserA_dmin 2012-03-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 kingtiy 的回复:]
要用动态语句
[/Quote]
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zjian_jiayou1 的回复:]

我想的意识是想问下

我那过程不是已经申明了变量吗? 我调用存储过程的时候传参数。 SQL语句应该是动态的啊
[/Quote]

这个可不是,这种情况必须使用动态执行,否则无效
zjian_jiayou1 2012-03-12
  • 打赏
  • 举报
回复
我想的意识是想问下

我那过程不是已经申明了变量吗? 我调用存储过程的时候传参数。 SQL语句应该是动态的啊
kingtiy 2012-03-12
  • 打赏
  • 举报
回复
要用动态语句
  • 打赏
  • 举报
回复

EXEC('select top ('+@pagesize+') * from '+@tablename+' where '+@pk+' not in ( select top (('+@pagenumber-1+')*'+@pagesize+') '+@pk+' from prc_sp)')
zjian_jiayou1 2012-03-12
  • 打赏
  • 举报
回复
解决了。 三克油。。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧