如何在 TRY CATCH 中结合使用 THROW 和测试值?
How can I use THROW combined with testing values in a TRY CATCH?
我这样编码:
BEGIN TRY
SELECT @TestUserId = UserId,
@TestCreatedBy = CreatedBy
FROM UserTest
WHERE UserTestId = @UserTestId
IF ( @TestUserId != @UserId & @TestCreatedBy != @UserID)
BEGIN
THROW 50000,'THROW TEST',1
END
END TRY
BEGIN CATCH
SET @RC = 1
SET @ErrorMessage = ERROR_MESSAGE()
RETURN
END CATCH
我对以 IF 开头的行有疑问。它给出了一个错误说:
! - Incorrect syntax
THROW 行也显示错误
有人可以告诉我如何正确地抛出和错误以及如何捕获它。我可以捕获特定于 50000 代码的块吗?
我希望 @UserId
在某处定义。问题出在 &
- 将其替换为 AND
.
试试这个
BEGIN TRY
SELECT @TestUserId = UserId,
@TestCreatedBy = CreatedBy
FROM UserTest
WHERE UserTestId = @UserTestId
IF ( @TestUserId != @UserId AND @TestCreatedBy != @UserID)
BEGIN
raiserror('THROW TEST',16,1)
END
END TRY
BEGIN CATCH
SET @RC = 1
SET @ErrorMessage = ERROR_MESSAGE()
RETURN
END CATCH
我这样编码:
BEGIN TRY
SELECT @TestUserId = UserId,
@TestCreatedBy = CreatedBy
FROM UserTest
WHERE UserTestId = @UserTestId
IF ( @TestUserId != @UserId & @TestCreatedBy != @UserID)
BEGIN
THROW 50000,'THROW TEST',1
END
END TRY
BEGIN CATCH
SET @RC = 1
SET @ErrorMessage = ERROR_MESSAGE()
RETURN
END CATCH
我对以 IF 开头的行有疑问。它给出了一个错误说:
! - Incorrect syntax
THROW 行也显示错误
有人可以告诉我如何正确地抛出和错误以及如何捕获它。我可以捕获特定于 50000 代码的块吗?
我希望 @UserId
在某处定义。问题出在 &
- 将其替换为 AND
.
试试这个
BEGIN TRY
SELECT @TestUserId = UserId,
@TestCreatedBy = CreatedBy
FROM UserTest
WHERE UserTestId = @UserTestId
IF ( @TestUserId != @UserId AND @TestCreatedBy != @UserID)
BEGIN
raiserror('THROW TEST',16,1)
END
END TRY
BEGIN CATCH
SET @RC = 1
SET @ErrorMessage = ERROR_MESSAGE()
RETURN
END CATCH