|
Пакетные запросы Для изменения
| ☑ |
0
_Demos_
10.10.13
✎
12:37
|
Используем базу в автоматическом режиме блокировки
Хочется уточнить если использовать предложение "ДЛЯ ИЗМЕНЕНИЯ" в пакетном запросе, как наложатся блокировки на таблицы?
После выполнения всего запроса или при выполнении первого же запроса?
|
|
1
Spieluhr
10.10.13
✎
12:40
|
после первого же
|
|
2
Spieluhr
10.10.13
✎
12:41
|
* вернее при выполнении
|
|
3
_Demos_
10.10.13
✎
12:47
|
Почему возник вопрос-то?
Есть необходимость выполнить 3 запроса к одной и той же таблице. Сделать в одном громоздко получается.
|
|
4
fisher
10.10.13
✎
12:56
|
Ты ж указываешь ДЛЯ ИЗМЕНЕНИЯ все равно для конкретных запросов пакета и для их таблиц. Как указываешь - так и лочится будет при выполнении этих запросов и в том же порядке.
До конца транзакции.
|
|
5
fisher
10.10.13
✎
12:59
|
На стороне СУБД, по идее, конструкция ДЛЯ ИЗМЕНЕНИЯ транслируется в хинты блокировок соответствующих селектов.
SELECT ... FROM ... WITH(ДЛЯ ИЗМЕНЕНИЯ)
:)
|
|
6
Spieluhr
10.10.13
✎
13:24
|
(3) блокировки от одного и того же пользователя не будут конфликтовать
|
|
7
_Demos_
10.10.13
✎
13:26
|
(6) будут проверено
если провожу два документа, то второй ждет первого
|
|
8
_Demos_
10.10.13
✎
13:27
|
+(6) может запросы с одной транзакции не будут конфликтовать?
|
|
9
_Demos_
10.10.13
✎
13:38
|
Уточню вопрос.
Будут ли выполняться все запросы,
если в одной транзакции выполню два запроса с предложением "для изменения" в обоих запросах и при том к одной и той же таблице.
Сейчас у меня довольно странные ошибки, то ли в коде то ли проблема в запросах. Если делаю у себя на компе, то вроде нормально, но походу работу на разных компьютерах выясняется что первый запрос не отрабатывает
|
|
10
Spieluhr
10.10.13
✎
13:40
|
(9) в одной транзакции - можно, т.к. блокировки от одного пользователя всегда совместимы. Если разные транзакции - то по общим правилам...
|
|
11
Spieluhr
10.10.13
✎
13:41
|
(9) + под пользователем имеется в виду сеанс работы с ИБ
|
|