一个非常简单的问题

zhaokeke2004 2003-11-24 02:24:29
我在一个存储过程中写了
declare @cursormdl cursor for sql_statment
时老是提示出错
去掉"@"就好了
难道不可以在存储过程中定义局部游标变量吗?为什么啊?
...全文
21 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuiniu 2003-11-24
  • 打赏
  • 举报
回复
--创建
create procedure test
as
declare @test cursor
SET @test = CURSOR FOR
SELECT * FROM sysobjects
open @test
fetch next from @test
close @test
deallocate @test
go
--调用
exec test

zjcxc 元老 2003-11-24
  • 打赏
  • 举报
回复
如果要用变量,改用:

exec('declare '+@cursormdl|' cursor for sql_statment')
zjcxc 元老 2003-11-24
  • 打赏
  • 举报
回复
确实不能用变量.
Rotaxe 2003-11-24
  • 打赏
  • 举报
回复
Transact-SQL 扩展语法
DECLARE cursor_name CURSOR
[ LOCAL | GLOBAL ]
[ FORWARD_ONLY | SCROLL ]
[ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ]
[ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC ]
[ TYPE_WARNING ]
FOR select_statement
[ FOR UPDATE [ OF column_name [ ,...n ] ] ]

cursor_name

是所定义的 Transact-SQL 服务器游标名称。cursor_name 必须遵从标识符规则。只能使用常数,要使用变量可以用动态SQL.
shuiniu 2003-11-24
  • 打赏
  • 举报
回复
DECLARE @MyCursor CURSOR
------
???

34,609

社区成员

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

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