Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];

Вниз

динамический use   Найти похожие ветки 

 
Gklbery   (2008-01-23 16:52) [0]

Здравствуйте! Как динамически выполнить следующее:

declare @SQL varchar(8000),@dbName varchar(30)
set @dbName="DBName1"
...
set @SQL="use "+@dbName
exec @SQL

....-- длинный-длинный скрипт с всякими "GO"
/*в одну строку @SQL поместить нельзя, dbName может меняться*/


 
clickmaker ©   (2008-01-23 18:31) [1]

а в чем проблема-то?


 
Gklbery   (2008-01-23 19:22) [2]

т.е., в чем проблема? так работать не будет. будет работать только так:
...
set @SQL="use "+@dbName+@SQL1
exec @SQL
а у меня SQL1 - это скрипт, который через exec не запустишь. Поэтому и вопрос, как динамически сделать use базе данных с именем, которое может меняться и далее присутствовать в @SQL1 наравне с use др. БД.


 
clickmaker ©   (2008-01-23 19:29) [3]

так можно же сначала exec use, а потом уже нормально остальной скрипт, разве нет?


 
sniknik ©   (2008-01-23 19:47) [4]

> разве нет?
> с всякими "GO"
не пройдет. что так что "по авторски".

и вообще GO это признак завершить команду и начать новую только по завершению предыдущей части.
хотя... если это передается в isql... но тогда какая разница в какое место имя таблицы подставлять? и зачем подставлять в одно место, а после в одном скрипте генерить  еще один динамический скрипт? не понимаю.


 
Gklbery   (2008-01-23 22:05) [5]

зачем: есть 2 больших сборных скрипта , один обновляет БД1, другой БД2, в отдельных процедурах эти базы пересекаются (н-р, в Скрипт1 добавлены поля в уже существующие таблицы БД1, а в Скрипте 2 есть процедуры, ссылающиееся на эти НОВЫЕ поля и наоборт). Цель такая

прямо прописать названия БД1 и БД2 нельзя!

меня интересует только каким образом динамически юзнуть базу, есть подозрение, что существует sql-процедура, позволяющая это сделать, если есть ответ на МОЙ ВОПРОС, пожалуйста, напишите


 
sniknik ©   (2008-01-24 00:24) [6]

> если есть ответ на МОЙ ВОПРОС
ответ есть, но не положительный... так сделать нельзя.

хотя то, что ты делаешь, сделать всетаки можно, по другому (хотя бы упомянутым составлением динамического скрипта в скрипте же т.е. через задницу), или еще каким вариантом, но это будет уже, не ответом на ТВОЙ ВОПРОС.


 
sniknik ©   (2008-01-24 00:28) [7]

> прямо прописать названия БД1 и БД2 нельзя!
если нельзя, но очень хочется, то можно!



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.033 c
4-1192191482
Dmitry S
2007-10-12 16:18
2008.06.29
Вопрос про окно и разные потоки


2-1212375734
snake-as
2008-06-02 07:02
2008.06.29
MediaPlayer


11-1190376210
misha_shar
2007-09-21 16:03
2008.06.29
Вызов ExeL


2-1212463198
n00b xDD
2008-06-03 07:19
2008.06.29
DEC to HEX(а точнее как инт показать в виде 16ого числа)


2-1212325071
LightRipple
2008-06-01 16:57
2008.06.29
Максимальное значение разности двух Pointer`ов.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский