当前位置: 首页 > 面试题库 >

SQL Server 2000-打破循环

龙弘济
2023-03-14
问题内容

我不太擅长SQLServer2000。我有一个用逗号分隔的ID列表。我需要查看该ID是否存在于表中。如果是这样,我想打破这个循环,将ID保存在一个可以在存储过程中使用的变量中。这就是我现在正在尝试的方法:

DECLARE @coreID INT
SET @coreID=NULL

DECLARE @itemID NVARCHAR(50)
DECLARE itemCursor CURSOR LOCAL FAST_FORWARD FOR
  SELECT [String] AS 'itemID' FROM dbo.SplitListIntoTable(@myIDs)

OPEN itemCursor
FETCH NEXT FROM itemCursor INTO @itemID
  WHILE @@FETCH_STATUS = 0 BEGIN

  -- If @itemID EXISTS IN MyTable set @coreID=@itemID and Break. How do I do this?

  FETCH NEXT FROM itemCursor INTO @itemID
END

CLOSE itemCursor
DEALLOCATE itemCursor

谢谢!


问题答案:

理想情况下,您不应该使用游标,因为性能不会很高。如果您可以将其作为基于集合的语句来执行,请改为这样做,也许是这样的:

SELECT TOP 1 @CoreID = [String] 
FROM dbo.SplitListIntoTable(@myIDs) x
    JOIN MyTable t ON x.[String] = t.ID

但是,如果确实有理由使用游标,则可以使用BREAK语句中断WHILE循环

例如

WHILE @@FETCH_STATUS = 0 
    BEGIN
        IF EXISTS(SELECT * FROM MyTable WHERE Id = @ItemID)
            BEGIN
                SET @CoreId = @ItemId
                BREAK
            END

        FETCH NEXT FROM itemCursor INTO @itemID
    END


 类似资料:
  • 问题内容: 我是python的新手,但收到一条错误消息,指出 打破循环 我知道一个中断只能在一个循环中使用,但是实际上我不知道何时确定循环何时结束。 我如何通过将中断放置在正确的位置来解决此错误(如果这是引起问题的原因)? 码: 问题答案: 在python中用于循环内。定位循环应该很容易,因为python代码需要适当缩进。您的代码在循环外,在try块中。继续的情况与此类似。 我不确定逻辑,但是可以

  • 问题内容: 我正在尝试制作一个具有if / elif语句的函数,并且我希望if中断while循环。该函数用于文本冒险游戏,是/否的问题。到目前为止,这是我想出的。 现在我不确定我是否正确使用该功能,但是当我尝试一下时,它说我不能中断该功能。因此,如果有人可以帮助我解决该问题,并且如果函数和调用函数本身的格式错误,则可以帮助我,将不胜感激。 问题答案: 您可以例外处理: 这样一遍又一遍地循环,但是在

  • 问题内容: 我尝试了这个: 只能得到: :声明前缺失 那么,我将如何打破JavaScript中的嵌套循环? 问题答案: 您应该能够打破标签,就像这样:

  • 我正在编写代码,拍摄屏幕的图片,然后逐个像素地检查某个RGB值。然后,我想让它在RGB值上单击一次,然后中断,但由于某种原因,循环一直在所有像素上运行,忽略我输入的中断命令,单击该颜色的所有像素,而不是单击一次。有什么解决办法吗?

  • 问题内容: 有没有比抛出异常更简单的方法来摆脱嵌套循环?(在Perl中,您可以给每个循环加上标签,至少可以继续一个外部循环。) 即,有没有比以下更好的方法: 问题答案: 至少有人建议,但也拒绝了。我认为没有其他方法,只需重复测试或重新组织代码即可。有时有点烦人。 范·罗瑟姆(van Rossum)先生在拒绝消息中提到使用,这确实很明智,我需要个人记住这一点。:)

  • 问题内容: 在我的代码中,我有一个for循环,迭代一个代码方法,直到满足for条件为止。 反正有没有打破这个for循环? 因此,如果我们看下面的代码,如果我们想在达到“ 15”时打破这个for循环,该怎么办? 我尝试了以下无济于事: 我尝试了一个循环: 我可以实现我想要的唯一方法是打破for循环,我不能暂时将其替换,如果要使用if语句。 编辑: 仅作为示例提供了此代码,这不是我试图将其实现的代码。