Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.06.29;
Скачать: CL | DM;

Вниз

динамический 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
15-1210823426
Капибара из дома
2008-05-15 07:50
2008.06.29
Настройка приоритета для приложения


15-1210866837
тимохов
2008-05-15 19:53
2008.06.29
Посоветуйте что-нибудь по поводу сетевого странспорта


15-1211045220
@!!ex
2008-05-17 21:27
2008.06.29
Что такое кристаллическая решетка?


2-1212386391
m
2008-06-02 09:59
2008.06.29
как залогиниться на сайт


2-1212471973
Igor M.
2008-06-03 09:46
2008.06.29
Анализ звука. ай нид хелп