позже sqlserver2005, разрешить блокировку легко.
для конфликта
1.Вы можете воспользоваться услугой брокера.
2. использовать уровень изоляции.
dbcc useroptions, в последней строке вы можете видеть, что уровень разрешения дефолта - read_committed, это уровень сеанса.
мы можем изменить уровень на read_committed_snapshot для конфликта, в sqlserver, а не на самом деле блокировка строки, как oracle.but мы можем использовать этот метод реализовать.
ALTER DATABASE DBName
SET READ_COMMITTED_SNAPSHOT ON;
открыть эту функцию, должен в однопользовательском шаме.
и вы можете проверить это.
для сеанса A, сеанса B.
A: обновить table1 set name = 'new' с помощью (Xlock) где id = 1
B: вы все еще обновляете другую строку и выбираете все данные из таблицы.
мой английский не очень хорош, но для блокировки, я знаю.
в sqlserver, для функции есть три блокировки.
1. Оптимистическая блокировка, используйте метку времени (rowversion).
Блокировка 2.pessimism, принудительная блокировка при использовании date.use Ulock, Xlock и так далее.
3. виртуальная блокировка, используйте процедуру getapplock ().
если вам нужна блокировка schame в архитектуре системы, пожалуйста, напишите мне: mjjjj2001@163.com