存储过程中表名作为参数如何用在游标中

sickinsect 2004-10-29 10:51:16
存储过程中表名作为参数传递进来,对于普通情况,可以使用EXEC或execute sp_executesql来实现使用参数表名
但是如下使用游标的情况,如何代入参数表名呢?

DECLARE authors_cursor CURSOR
FOR SELECT * FROM authors
OPEN authors_cursor
FETCH NEXT FROM authors_cursor

这是没问题的,但:

DECLARE authors_cursor CURSOR
FOR SELECT * FROM @tbl
OPEN authors_cursor
FETCH NEXT FROM authors_cursor

会出错,又没法使用EXEC或execute sp_executesql,怎样解决?谢谢!
...全文
186 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
pjy 2004-11-02
  • 打赏
  • 举报
回复
把SELECT * FROM @tbl建成一个视图,然后随便怎么做了!
sickinsect 2004-11-02
  • 打赏
  • 举报
回复
好像local也能行阿,这里用global有何用意?
zjcxc 元老 2004-10-30
  • 打赏
  • 举报
回复
不好意思,我的写反了,如楼上
haoK 2004-10-30
  • 打赏
  • 举报
回复
local --> global
zjcxc 元老 2004-10-29
  • 打赏
  • 举报
回复
declare @tbl sysname

--全局游标就行了
exec('
DECLARE authors_cursor CURSOR local
FOR SELECT * FROM ['+@tbl+']
OPEN authors_cursor
FETCH NEXT FROM authors_cursor
')
Andy__Huang 2004-10-29
  • 打赏
  • 举报
回复
我記得表名好象不能作為參考偉入的﹖

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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