2012-04-18 7 views
0

以下のSQL Server 2008 R2でストアドプロシージャを作成することはできましたが、ストアドプロシージャでトランザクションを使用し、挿入時にエラーがないかどうかをチェックする必要があるため、ステートメント。エラーが見つかると、トランザクションはロールバックされ、何もコミットされません。どんな助けもありがとう。トランザクションを使用するストアドプロシージャを作成する方法は?

使用のNorthwind GO は、社員が= '' + @社員+ '' GO EXEC spEmployee @社員= 2 GO

従業員からの SELECT * AS

をPROC spEmployee @EmployeeID int型 をCREATE PROC spEmployee @EmployeeIDが AS

をint型CREATE

BEGIN TRANSACTIONを従業員からの

SELECT * WHERE社員= '' + @社員+ ''

GO EXEC spEmployee @社員= @@ ERROR <> 0

を始めたら2

が GO ROLLBACK

RAISERROR( 'EXECUTE後のトランザクション数は、一致しない数のBEGINおよびCOMMIT文を示します。前のカウント= 1、現在の数= 2 '、16、2)

RETURN

END

答えて

0

は、まず上向きSQL2005でのtry catchブロックについて読みに行くCOMMIT。ここではSQL 2000エラー処理を使用しています。 SQLのオンラインブックは、必要な情報に非常に役立ちます。

関連する問題