| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MS SQL Server > динамический запрос + возврат данных |
| Автор: Wanderer2019 13.11.2007, 09:56 |
| Привет! Подскажите как решить 2 проблеммы связанные с хранимой процедурой: 1. Динамически подставлять название сервера и БД в запрос. 2. Возвращать 2 параметра из этой процедуры. По п.1 решением может быть составление теката запроса в формата (например) varchar и далее вызов запроса при помощи EXEC(x). Но вот п.2 никак решить не получается... если пишу, что в нем присвоение данных каким то переменным (в тексте), то при вызове он пишет, что необходимо объявить переменные, хотя они конечно же объявлены. |
| Автор: AlexxxM 13.11.2007, 10:23 |
| Да была такая проблема, в динамическом запросе MSSQL не видит внешние переменные. Решили с помощью временных таблиц, перед выполнением динамического запроса создаем временную таблицу (ее в динамическом запросе видно), записываем нужные данные во временную таблицу, а после выполнения динамического запроса извлекаем данные из временной таблицы |
| Автор: Wanderer2019 13.11.2007, 10:44 |
В сиквеле есть какие то спец операторы для этого? или просто Create TABLE/DROP TABLE? |
| Автор: Servena 13.11.2007, 10:46 |
| А пример можно? |
| Автор: AlexxxM 13.11.2007, 10:56 | ||
Что-то вроде такого. Временные таблицы создаются также как и обычные таблицы, перед именем таблицы ставится символ #, он и указывает серверу что это временная таблица. DROP TABLE можно не делать, таблица сама уничтожиться по окончании сторед процедуры. Вообще это и в helpе вполне понятно описано. |
| Автор: VOS 13.11.2007, 15:07 | ||
Через таблицы можно если Вам надо получить набор данных. Если только пару значений, то лучше так:
|
| Автор: Todd 16.1.2008, 18:53 |
| А если динамический запрос должен возвратить xml? |