После некоторого исследования я думаю, что, возможно, нашел способ обойти это. Я искал способ проверить, выполнялся ли уже сценарий для целевой базы данных. Это будет в первую очередь для контроля версий моих баз данных. У меня есть таблица, созданная для отслеживания выполненных сценариев, и я хотел, чтобы поток внутри моих сценариев проверил эту таблицу перед выполнением. Хотя я еще не полностью решил проблему, я создал простой скрипт, который в основном делает то, что мне нужно, но мне просто нужно обернуть DDL в выборки, основываясь на значении переменных.
шаг 1 - установка битовой переменной для хранения результата
шаг 2 - выберите и установите переменную, если результат найден
Шаг 3 - Делайте то, что вам нужно сделать на ложный результат
Шаг 4 - Делайте то, что вам нужно, чтобы получить истинный результат
Вот пример сценария
set @schemachangeid = 0;
выберите @schemachangeid: = 1 из SchemaChangeLog, где scriptname = '1_create_tables.sql';
выберите 'scriptalreadyran' из двойного, где @schemachangeid = 1;
выберите 'scriptnotran' из двойного, где @schemachangeid = 0;
Я также признаю, что это старая ветка, но, возможно, это поможет кому-то там попытаться сделать что-то подобное вне хранимой процедуры, такой как я.