Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Порядок работы хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Добрый день. Подскажите пожалуйста ответ на два вопроса. 1. Как в хранимой процедуре указать последовательность действий? В обычном скрипте запроса можно использовать 'go'. В хранимке же 'go' не работает а только ';'. Есть подозрение, что ';' не разделяет последовательность действий так как возникает ошибка блокировок которой нет если запустить этот же скрипт просто вручную (не в хранимке). 2. Если есть несколько хранимок как их запустить одной хранимкой в четкой последовательности (после того как отработала первая - запускается вторая и т.д.). Спасибо. SQL ver.2008R2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2020, 12:42 |
|
||
|
Порядок работы хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Pallich 1. Как в хранимой процедуре указать последовательность действий? В обычном скрипте запроса можно использовать 'go'. В хранимке же 'go' не работает а только ';'. Есть подозрение, что ';' не разделяет последовательность действий так как возникает ошибка блокировок которой нет если запустить этот же скрипт просто вручную (не в хранимке). Pallich 2. Если есть несколько хранимок как их запустить одной хранимкой в четкой последовательности (после того как отработала первая - запускается вторая и т.д.). exec ПерваяПроцедура exec ВтораяПроцедура и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2020, 12:50 |
|
||
|
Порядок работы хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Pallich ... 1. Как в хранимой процедуре указать последовательность действий? В обычном скрипте запроса можно использовать 'go'. В хранимке же 'go' не работает а только ';'. Есть подозрение, что ';' не разделяет последовательность действий так как возникает ошибка блокировок которой нет если запустить этот же скрипт просто вручную (не в хранимке). 2. Если есть несколько хранимок как их запустить одной хранимкой в четкой последовательности (после того как отработала первая - запускается вторая и т.д.). ... 1. Все команды процедуры выполняются в порядке их следования друг за другом (если нет явных if then else и goto). go - это разделитель блоков в скрипте. В процедуре необходимости в нем нет. 2. Пишете новую процедуру, состоящую из команд exec <Процедура 1>; exec <Процедура 2>; ... exec <Процедура 3> В чем проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2020, 12:50 |
|
||
|
Порядок работы хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Александр Спелицин, В процедуре есть цикл WHILE с условием. Когда запускаю этот скрипт вне процедуры - все нормально отрабатывает. если же скрипт в процедуре - вылетает ошибка блокировок: сообщение: 1205, уровень: 13, состояние: 80, процедура: PROC, строка: 32 [строка начала пакета: 10] Транзакция (идентификатор процесса 62) вызвала взаимоблокировку ресурсов поток | буфер связи с другим процессом и стала жертвой взаимоблокировки. Запустите транзакцию повторно. У меня подозрение, что как то все одновременно пытается выполнить процедура. Не знаю как быть( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2020, 12:58 |
|
||
|
Порядок работы хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Pallich, другие процессы же есть на сервере, которые используют те же таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2020, 13:15 |
|
||
|
Порядок работы хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Pallich У меня подозрение, что как то все одновременно пытается выполнить процедура. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2020, 13:18 |
|
||
|
Порядок работы хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Владислав Колосов, Теоретически есть. Можно как то выполнять хранимку независимо от них? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2020, 13:21 |
|
||
|
Порядок работы хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Pallich, Если вам нужно гарантированное выполнение процедуры, ловите ошибку 1205 через try-catch, ставьте флаг (переменную) ошибки и выполняйте GOTO на начало пока не выполнится. Или копайтесь, выясняйте, что является причиной взаимоблокировки. Решение зависит от потребностей. Графы взаимоблокировок можно увидеть в Profiler, включив соответствующее событие для просмотра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2020, 13:28 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=40030852&tid=1685256]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 241ms |
| total: | 359ms |

| 0 / 0 |
