我正在尝试将脚本从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