Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Блокировка таблиц.  [new]
2009_Юрий
Member

Откуда:
Сообщений: 13
Здравствуйте!

Подскажите как установит блокировку на таблицу на определенное время?
24 сен 09, 13:40    [7702911]     Ответить | Цитировать Сообщить модератору
 Re: Блокировка таблиц.  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
зачем ?

with ( tablock, xlock )
24 сен 09, 13:43    [7702944]     Ответить | Цитировать Сообщить модератору
 Re: Блокировка таблиц.  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
tablockx , естественно
24 сен 09, 13:44    [7702952]     Ответить | Цитировать Сообщить модератору
 Re: Блокировка таблиц.  [new]
2009_Юрий
Member

Откуда:
Сообщений: 13
Задача такая:
В транзакции нужно заблокировать таблицу на некоторое время, что б друге конекты делающие select дождались ее разблокировки.


Как это написать для MS SQL не соображу, а вот для Sybase это выглядит так
"lock table <name table> in share mode wait 60" - блокировка на 60 секунд
24 сен 09, 13:57    [7703048]     Ответить | Цитировать Сообщить модератору
 Re: Блокировка таблиц.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36799
Временем управлять не получится - блокировки будут висеть до окончания транзакции.
24 сен 09, 13:59    [7703065]     Ответить | Цитировать Сообщить модератору
 Re: Блокировка таблиц.  [new]
Glory
Member

Откуда:
Сообщений: 104760
2009_Юрий
Задача такая:
В транзакции нужно заблокировать таблицу на некоторое время, что б друге конекты делающие select дождались ее разблокировки.


Как это написать для MS SQL не соображу, а вот для Sybase это выглядит так
"lock table <name table> in share mode wait 60" - блокировка на 60 секунд

В MSSQL таблицу блокируют запросы к ней, а не транзакции. Транзакции влияют на продолжительность блокировки после окончания запроса
24 сен 09, 14:00    [7703074]     Ответить | Цитировать Сообщить модератору
 Re: Блокировка таблиц.  [new]
2009_Юрий
Member

Откуда:
Сообщений: 13
Как поставить задержку или паузу в транзакции?
24 сен 09, 14:01    [7703079]     Ответить | Цитировать Сообщить модератору
 Re: Блокировка таблиц.  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
не надо переносить не подходящие алгоритмы на другие бд.
Читать здесь до просветления

транзакция должны быьт короткой.
24 сен 09, 14:01    [7703080]     Ответить | Цитировать Сообщить модератору
 Re: Блокировка таблиц.  [new]
Glory
Member

Откуда:
Сообщений: 104760
2009_Юрий
Как поставить задержку или паузу в транзакции?

Задержку можно поставить не в транзакции, а между командами, которые вы передаете серверу на выполнение
24 сен 09, 14:03    [7703102]     Ответить | Цитировать Сообщить модератору
 Re: Блокировка таблиц.  [new]
2009_Юрий
Member

Откуда:
Сообщений: 13
Спасибо!!! Разобрался.
24 сен 09, 14:19    [7703242]     Ответить | Цитировать Сообщить модератору
 Re: Блокировка таблиц.  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
2009_Юрий
Спасибо!!! Разобрался.


На будущее: Рекомендации по оформлению сообщений в форуме п.6 второй абзац:

Подумайте также над тем, чтобы описать решаемую Вами задачу целиком. Возможно, что тот способ решения, который Вы стремитесь воплотить в жизнь, не является наилучшим, а лишь кажется Вам таковым. Например, вместо вопроса "Как добавить несколько полей в системную таблицу sysusers?" лучше спросить "Как мне хранить дополнительную информацию, привязанную к пользователю бд? Можно ли для этого использовать системную таблицу sysusers?"
24 сен 09, 14:43    [7703456]     Ответить | Цитировать Сообщить модератору
 Re: Блокировка таблиц.  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
да там ноги растут из

автор
Задача заключается в следующем: нужно скопировать данный из одной табличке в другую, а затем в первой изменить статус. Это все нужно делать в транзакции


автор ни в зоб ногой ни с дельфи ни с скулем.
24 сен 09, 14:48    [7703503]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить