Entity
データベースに存在しないテーブルからエントリを選択するストアド プロシージャがあります。
以下のコードでは、ストアド プロシージャを実行すると、catch ブロックに移動しませんが、try ブロックのすべてのエラーは自動的に catch ブロックに移動する必要があります。
理由が理解できません
Create PROCEDURE AddUpdateEntity
(@Name VARCHAR(20),
@Age SMALLINT)
AS
BEGIN TRY
SELECT NAME, Age FROM Entity WHERE NAME = @name AND Age = @Age
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() StatusCode, ERROR_MESSAGE() [Message]
END CATCH
GO
/* Command to execute the SP */
EXEC AddUpdateEntity 'Sandeep',20
この実行ステートメントは、「無効なエンティティ オブジェクト」というエラーを表示していますが、catch ブロックを呼び出していません。
ストアド プロシージャがクラッシュし、メッセージが表示されている
メッセージ 208、レベル 16、状態 1、手順 AddUpdateEntity、行 10
Nom d'objet 'Entity' は有効ではありません。