在具有IF条件的SQL Server(THROW命令)中引发错误-SQL Server



我正在尝试将脚本从RAISERROR命令更新为THROW命令。我处于IF语句条件中,如果条件为true,则抛出错误。对于RAISEERROR命令,我没有问题,但是当我更改为THROW命令时,就不可能了。

RAISERROR命令:

CREATE OR ALTER PROCEDURE Auction.uspAddProductToAuction
(@ProductID INT,
@ExpireDate DATETIME = NULL,
@InitialBidPrice MONEY = NULL) 
AS
DECLARE @IND_ADD_PRODUCT TINYINT
SET @IND_ADD_PRODUCT = 1
IF ([Auction].[ufnGetStock](@ProductID) = 0) --> true
BEGIN
SET @IND_ADD_PRODUCT = 0
RAISERROR ('The product is not in auction campaign discount or a product was not inserted', 1, 0)
END

THROW命令:

CREATE OR ALTER PROCEDURE Auction.uspAddProductToAuction
(@ProductID INT,
@ExpireDate DATETIME = NULL,
@InitialBidPrice MONEY = NULL) 
AS
DECLARE @IND_ADD_PRODUCT TINYINT
SET @IND_ADD_PRODUCT = 1
IF ([Auction].[ufnGetStock](@ProductID) = 0) --> true
BEGIN
SET @IND_ADD_PRODUCT = 0
THROW 50001, 'The product is not in auction campaign discount or a product was not inserted', 0 
END

我得到这个错误:

Msg 102,Level 15,State 1,Procedure uspAddProductToAuction,Line 14[Batch Start Line 180]
"THROW"附近的语法不正确

提前感谢

备注THROW语句之前的语句必须后跟分号(;(语句终止符。

SET @IND_ADD_PRODUCT = 0;--<--!!
THROW 50001, 'The product is not in auction campaign discount or a product was not inserted',0;
END

最新更新