0

以下の SQL Server 2008 R2 でストアド プロシージャを作成できましたが、ストアド プロシージャがトランザクションを使用し、insert ステートメントのエラーをチェックする方法で作成する必要があるため、レンガの壁にぶつかっています。エラーが見つかった場合、トランザクションはロールバックされ、何もコミットされません。どんな助けでも大歓迎です。

Northwind を使用 GO CREATE PROC spEmployee @EmployeeID int AS SELECT * FROM employees WHERE EmployeeID=''+@EmployeeID+'' GO EXEC spEmployee @EmployeeID=2 GO


CREATE PROC spEmployee @EmployeeID int

AS BEGIN トランザクション

SELECT * FROM 従業員 WHERE EmployeeID=''+@EmployeeID+''

GO EXEC spEmployee @EmployeeID=2

GO IF @@エラー <> 0

始める

ロールバック

RAISERROR (「EXECUTE 後のトランザクション数は、BEGIN ステートメントと COMMIT ステートメントの数が一致していないことを示しています。前の数 = 1、現在の数 = 2.」、16、2)

戻る

終わり

専念

4

1 に答える 1

0

まず、SQL2005 以降の try catch ブロックについて読んでください。ここでは SQL 2000 エラー処理を使用しています。オンラインの SQL ブックは、必要な情報を得るのに非常に役立ちます。

于 2012-04-18T17:07:30.270 に答える