深入讲解游标类型为什么会产生数据检索

发表于:2008-04-11来源:作者:点击数: 标签:
游标类型产生的数据检索问题: 现象: 在将 数据库 兼容的级别从80改到90以后, 下文中的游标循环不出数据, 单独SELECT却会有结果: DECLARE MyCursor CURSOR LOCAL READ_ONLY FOR SELECT Col1 FROM tbname WITH(NOLOCK) WHERE Name LIKE 'SNET%' AND B_Key IN(
 游标类型产生的数据检索问题:

  现象:

  在将数据库兼容的级别从80改到90以后, 下文中的游标循环不出数据, 单独SELECT却会有结果:

  DECLARE MyCursor CURSOR LOCAL READ_ONLY
  FOR
  SELECT
  Col1
  FROM tbname WITH(NOLOCK)
  WHERE Name LIKE 'SNET%'
  AND B_Key IN(
  SELECT TOP(100)
  KeyID
  FROM tbmaster WITH(NOLOCK)
  WHERE Date >= '01/01/2007'
  AND Date < '02/01/2007')
  OPEN MyCursor
  FETCH NEXT FROM MYCURSOR
  WHILE (@@FETCH_STATUS=0)
  BEGIN
  FETCH NEXT FROM MYCURSOR
  END
  CLOSE MyCursor
  DEALLOCATE MyCursor

  原因:

  游标类型的问题。

  参照以上的定义, 游标类型是: DYNAMIC

原文转自:http://www.ltesting.net