значит так:
есть хранимая процедура;
в этой процедуре используются временные таблицы (те, которые начинаются с "#" (решётка));
таблицы этого типа удаляются по завершении процедуры (подтранзакции);
для статических запросов (напрямую в коде) всё работает великолепно;
для динамических запросов возникают проблемы:
генериться sql-запрос, запускается при помощи EXEC(), но создаваемые в нём таблицы, разумеется, исчезают после выхода из данного (внутреннего) EXEC'а.
т.е. надо либо:
а). использовать функцию типа EXEC(), которая выполняет sql-код в текущем контексте;
б). делать EXEC() для нескольких sql-предложений сразу (новая процедура не подходит, т.к. результаты опять-таки сохраняются во временных таблицах);
в). или создавать временные таблицы без решётки, а потом самому удалять их, что малоприемлемо ввиду того, что нужно генерить случайные числа, следить за таблицами + могут аозникнуть проблемы с производительностью...
итого:
буду очень признателен, если кто-нибудь сможет подсказать решения для "а" и "б", иначе придётся юзать третий вариант.
заранее спасибо!
есть хранимая процедура;
в этой процедуре используются временные таблицы (те, которые начинаются с "#" (решётка));
таблицы этого типа удаляются по завершении процедуры (подтранзакции);
для статических запросов (напрямую в коде) всё работает великолепно;
для динамических запросов возникают проблемы:
генериться sql-запрос, запускается при помощи EXEC(), но создаваемые в нём таблицы, разумеется, исчезают после выхода из данного (внутреннего) EXEC'а.
т.е. надо либо:
а). использовать функцию типа EXEC(), которая выполняет sql-код в текущем контексте;
б). делать EXEC() для нескольких sql-предложений сразу (новая процедура не подходит, т.к. результаты опять-таки сохраняются во временных таблицах);
в). или создавать временные таблицы без решётки, а потом самому удалять их, что малоприемлемо ввиду того, что нужно генерить случайные числа, следить за таблицами + могут аозникнуть проблемы с производительностью...
итого:
буду очень признателен, если кто-нибудь сможет подсказать решения для "а" и "б", иначе придётся юзать третий вариант.
заранее спасибо!