SQL Server и возможное состояние гонки - PullRequest
0 голосов
/ 12 ноября 2011

Скажем, если я пишу веб-сайт с использованием ASP.NET, который использует базу данных 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 не будут смешиваться и вызывать состояние гонки?

Ответы [ 2 ]

0 голосов
/ 12 ноября 2011

Нет, если вы не заключили транзакцию:

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 голосов
/ 12 ноября 2011

Если вы явно не заблокируете столы, я так не думаю.

...