如何在SQL Server中的更新语句后引发错误

问题描述 投票:0回答:1

这是我的SP:

BEGIN TRY
    SET @maxDeliveryFailCount -= 1

    IF EXISTS (SELECT 1
    FROM sms.customerOtp
    WHERE customerID = @customerId AND mobileNumber = @mobileNumber AND otp = @otp AND deliveryFailed < @maxDeliveryFailCount)
        BEGIN
            UPDATE sms.customerOtp
            SET deliveryFailed += 1
            WHERE customerID = @customerId AND mobileNumber = @mobileNumber AND otp = @otp
        END
    ELSE 
            BEGIN
            UPDATE sms.customerOtp
            SET deliveryFailed += 1, otpExpired = 1
            WHERE customerID = @customerId AND mobileNumber = @mobileNumber AND otp = @otp 
            THROW 51000,'Continuous failed attempts of SMS delivery two time happened, retry with another mobile Number', 1; 

        END

END TRY
BEGIN CATCH
    SELECT  
         ERROR_NUMBER() AS ErrorNumber  
        ,ERROR_SEVERITY() AS ErrorSeverity  
        ,ERROR_STATE() AS ErrorState  
        ,ERROR_PROCEDURE() AS ErrorProcedure  
        ,ERROR_LINE() AS ErrorLine  
        ,ERROR_MESSAGE() AS ErrorMessage; 
END CATCH

我需要在我的else块中抛出一个字符串(带有一条更新语句),但是它不起作用,它显示为语法错误。我哪里错了?任何建议表示赞赏。

sql sql-server tsql throw
1个回答
0
投票

“ THROW”附近的语法不正确

© www.soinside.com 2019 - 2024. All rights reserved.