SQL Serverマネージャーを使用してレコードを更新しました。 UPDATEステートメントとしてSQL Serverの更新後にCommitステートメントを実行する必要があります
は、私はそれを手動で記述しようとしています、明示的なコミット持っていません。
Update mytable
set status=0;
Commit;
コミットとして、私はメッセージを取得していますが何のトランザクションを使用している場合を除き、オラクルとは異なり、取引
SQL Serverマネージャーを使用してレコードを更新しました。 UPDATEステートメントとしてSQL Serverの更新後にCommitステートメントを実行する必要があります
は、私はそれを手動で記述しようとしています、明示的なコミット持っていません。
Update mytable
set status=0;
Commit;
コミットとして、私はメッセージを取得していますが何のトランザクションを使用している場合を除き、オラクルとは異なり、取引
SQL Server Management Studioのはとても実行されたすべての文が暗黙的にコミットされ、オン暗黙のコミットしています。
デフォルトは、コマンドが自動的にコミットしていないではないが、それは問題のあまりないことですOracleバックグラウンドから来た場合、これは怖いものになるかもしれません。あなたはまだアドホックトランザクションを使用する場合は
、あなたは常にSSMS内
BEGIN TRANSACTION
を実行し、システムよりも、あなたがデータをコミットするのを待つことができます。
は、Oracleの動作を複製して、暗黙のトランザクションを開始し、いくつかのDML/DDLが発行されるたびに、あなたは
Tools -> Options -> Query Execution -> SQL Server -> ANSI
こんにちは@SWeko。非常に有用な、thx。仮定する権利はありますか?そのチェックボックスをオフにすると、取引は暗黙的にコミットされますか?それは私の(デフォルト)状況です。そのチェックボックスの名前は奇妙です。 btw、関連する問題はこちら:http://stackoverflow.com/questions/17576649/safely-delete-rows-in-sqlserver-so-you-can-rollback-a-commit –
ありがとうございます – Patan
チェックボックスがオンの場合チェックされた後、SELECT文が明示的にコミットされる必要があるトランザクションを暗黙的に開始します。 – SWeko
SQL Serverがコミットを必要としない始めていません。
更新ステートメントの直後にテーブルがコミットされます。このシナリオでは、コミットコマンドを使用しないでください。
でSET IMPLICIT_TRANSACTIONSチェックボックスを設定することができますしたい場合はあなたがコミットする前にトランザクションを開始する必要があります。 –
トランザクションを開く必要があります。その中で更新を実行してから変更をコミットする必要があります。 – lexeme
それはここで動作を参照してください:http://www.codeproject.com/Articles/10223/Using-Transactions-in-ADO-NET – lexeme