在这里如何避免歧义?

问题描述

| 我实际上使用的是带有两个游标的错误设计(我知道它,但是随后的任务很简单,因此我不必理会优化)。我正在使用这样的查询:
DECLARE cursor1 CURSOR FAST_FORWARD FOR
SELECT DISTINCT name FROM #NameMeta;

OPEN cursor1;

FETCH NEXT FROM cursor1 INTO @name

WHILE @@FETCH_STATUS = 0
BEGIN

  DECLARE cursor2 CURSOR FAST_FORWARD FOR
  SELECT DISTINCT place FROM #PlaceMeta;

  OPEN cursor2;

  FETCH NEXT FROM cursor2 INTO @place

  WHILE @@FETCH_STATUS = 0
  BEGIN

  ...
  ...
...
...
在我真正单击“ 1”按钮之前,我非常确定此查询是错误的,并且会因错误而退出。从我的角度来看,有两个
@@FETCH_STATUS
被使用。因此,除非在打开新游标之前将第一个2的状态保存在堆栈中的某个位置,否则此查询将不起作用。 有人可以告诉我该查询的工作原理吗?我的主要问题是要对ѭ2进行多次比较检查。我手动验证了一些结果,但是不确定在极端情况下该操作是否会失败,或者查询是否正确,并且SQL Server正在执行其他操作。     

解决方法

        @@ FETCH_STATUS始终返回最近的FETCH操作的结果。     ,        该查询本身可以正常工作。 @@ FETCH_STATUS始终返回最后一个提取语句的状态。由于您的@@ FETCH_STATUS紧随要检查其状态的FETCH语句,因此可以。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...