:コミット構文は次のとおりです。 SqlサーバーCOMMIT without Tran |トランザクション? MSDNによると
は、しかし、私はtran
/
transaction
言葉を省略
とき - それはコンパイルしてエラーなしで実行しません。 どのように動作させることができますか?
代わりに別のことをしますか?
:コミット構文は次のとおりです。 SqlサーバーCOMMIT without Tran |トランザクション? MSDNによると
は、しかし、私はtran
/
transaction
言葉を省略
とき - それはコンパイルしてエラーなしで実行しません。 どのように動作させることができますか?
代わりに別のことをしますか?
問題のCOMMITは実際にCOMMITするとは思われません。 COMMIT WORK
COMMIT [WORK] [; ]
備考
トランザクションをコミット以外の機能は全く同じ、トランザクションをコミットするこのステートメントは、ユーザー定義のトランザクション名を受け入れます。このCOMMIT構文は、オプションのキーワードWORKを指定してもしなくても、SQL-92と互換性があります。それだけでそう
COMMIT
はCOMMIT TRANSACTION
と同一であるCOMMIT WORK
です。コメント後ROLLBACK [ WORK ]
ため
同上、
BEGIN TRANSACTION gbn
SELECT 1
COMMIT gbn -- fail
GO
BEGIN TRANSACTION gbn
SELECT 2
COMMIT TRAN gbn -- works
GO
IF @@TRANCOUNT > 0
は、(少なくとも)があるもの、保留中のトランザクションをチェックすることを目的と - 任意のトランザクションのオープンを持つことなく、これらの命令を実行するようROLLBACK
とCOMMIT
両方で使用する必要がある場合
「COMMIT TRANSACTIONはユーザー定義のトランザクション名を受け入れます」というメッセージが表示されますが、トランザクションの名前がわかりません。 + 'WORK'キーワードについては話していません。私はコミット対コミットについて話しています。 –
@Royi Namir:いいえ、COMMITはCOMMIT WORKを意味します。名前付き取引とは何も関係ありません。あなたが名前をつけたのであれば、あなたはそのことについて言及していませんでした。そして、名前をつけて、明示的に 'COMMIT TRANSACTION SomeName'または' COMMIT TRAN SomeName'を使わなければなりません。 * NOT *それ自身でCOMMITする – gbn
名前付きトランザクションを使用しない場合、私はいつもCommitを単独で使うことができます。右 ? –