2011-11-12 24 views
0

SQL Serverデータベースを使用するASP.NETを使用してWebサイトを作成するとします。私のスクリプトは、このような何かを実行:SQL Serverと競合条件

-- The meaning of the SQL doesn't matter 
UPDATE t1 SET [c1]=1 WHERE [id]=3; 
UPDATE t1 SET [c2]=0 WHERE [id]=4; 
UPDATE t1 SET [c1]=2 WHERE [id]=7; 

を上記のSQLは、同じページに別のユーザーがログインを実行していると同時に、同じSQLスクリプトを実行している間。 SQL Serverは複数の同時SQL実行コマンドが混在して競合状態を引き起こさないようにしますか?

答えて

0

いいえ、あなたがトランザクションでラップしていない限り:

BEGIN TRANSACTION 
    UPDATE t1 SET [c1]=1 WHERE [id]=3; 
    UPDATE t1 SET [c2]=0 WHERE [id]=4; 
    UPDATE t1 SET [c1]=2 WHERE [id]=7; 
COMMIT 
0

テーブルを明示的にロックしない限り、私はそうは思わないでしょう。