SQL存储过程WHILE循环BEGIN END然后执行一些操作

时间:2019-02-14 23:44:59

标签: sql sql-server stored-procedures

我不知道为什么WHILE EXISTS()循环后我的Select语句不能运行。

此代码是在存储过程中编写的,可以完美运行,希望它最后不会返回select语句,我只是成功完成了命令。

如果将select语句放在末尾,则会陷入无限循环中。...

有什么想法

WHILE EXISTS (SELECT 1 FROM #staging AS FHD WITH (NOLOCK))
BEGIN

    BEGIN TRY

        BEGIN TRANSACTION

       /*Do Stuff*/

        SELECT TOP 1
        @Index = FHD.[index]            
        FROM #staging AS FHD WITH (NOLOCK)


        COMMIT TRANSACTION

    END TRY
    BEGIN CATCH

        IF @@TRANCOUNT > 0 
        BEGIN
            ROLLBACK TRANSACTION
        END

       /*Do Stuff*/


    END CATCH

    DELETE FHD
    FROM #staging AS FHD
    WHERE FHD.[index] = @Index

END

Select * from #table

0 个答案:

没有答案