Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
EXEC и временные таблицы, MS SQL Server
 
значит так:
есть хранимая процедура;
в этой процедуре используются временные таблицы (те, которые начинаются с "#" (решётка));
таблицы этого типа удаляются по завершении процедуры  (подтранзакции);
для статических запросов (напрямую в коде) всё работает великолепно;
для динамических запросов возникают проблемы:

генериться sql-запрос, запускается при помощи EXEC(), но создаваемые в нём таблицы, разумеется, исчезают после выхода из данного (внутреннего) EXEC'а.

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

итого:
буду очень признателен, если кто-нибудь сможет подсказать решения для "а" и "б", иначе придётся юзать третий вариант.

заранее спасибо!
 
сделал третий вариант -- вроде не очень тормозит, и , главное, работает =)
Страницы: 1
Читают тему