t-sql中的游标

时间:2012-11-27 15:36:06

标签: sql sql-server tsql cursor

这段代码是什么意思?

DECLARE Users CURSOR LOCAL FAST_FORWARD READ_ONLY FOR
SELECT 
    Username,
    Password
FROM View_V_User
WHERE CF = @UserID
AND Scheduling = 'absolute'

特别是第一个代码行是什么意思?

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

请阅读文档。它非常简洁明了,应该可以帮助您:

MSDN Cursors

答案 2 :(得分:1)

来自MSDN documentation

本地

  

指定游标范围对于创建游标的批处理,存储过程或触发器是本地的。游标名称仅在此范围内有效。游标可以由批处理,存储过程或触发器中的本地游标变量或存储过程OUTPUT参数引用。 OUTPUT参数用于将本地游标传递回调用批处理,存储过程或触发器,后者可以将参数分配给游标变量,以便在存储过程终止后引用游标。除非光标在OUTPUT参数中传回,否则当批处理,存储过程或触发器终止时,将隐式释放游标。如果它在OUTPUT参数中传回,则当引用它的最后一个变量被释放或超出范围时,游标将被释放。

<强> FAST_FORWARD

  

指定启用了性能优化的FORWARD_ONLY,READ_ONLY游标。如果还指定了SCROLL或FOR_UPDATE,则无法指定FAST_FORWARD。

<强> READ_ONLY

  

阻止通过此游标进行更新。无法在UPDATE或DELETE语句的WHERE CURRENT OF子句中引用游标。此选项会覆盖要更新的游标的默认功能。

光标应该在完成后隐式释放,它被优化用于选择,并且无法用光标进行更新。