Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / select ... from @basename+... - как? / 4 сообщений из 4, страница 1 из 1
02.12.2002, 15:17:32
    #32074672
iluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select ... from @basename+... - как?
у меня есть хранимые процедуры, в которых выполняются запросы к связанным таблицам, лежащим в разных базах (MSSQL). причем, возможно даже такое, что базы лежат на разных серверах (используется механизм linked servers - с этим я уже разобрался). слить эти базы в одну никак не получится - разные разработчики, разный софт. имя "моей базы" - константа. а вот "чужая" может называться по-разному!

теперь вопрос. возможно ли каким-либо образом подставлять полное имя базы в виде строки в запросы, типа:

declare @basename varchar(100)
set @basename = 'server1.base1'
select * from @basename+'.table1'

это первое, что пришло у меня на ум - запихать имя базы в переменную. но, допустим, соединение порвалось - все переменные ведь сбросились? что посоветуете?
...
Рейтинг: 0 / 0
02.12.2002, 15:27:53
    #32074682
YuriAM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select ... from @basename+... - как?
Да , Только не как переменная в SELECT
а формруй целиком запрос в переменной, и дай на выполнение !
...
Рейтинг: 0 / 0
02.12.2002, 15:48:08
    #32074703
iluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select ... from @basename+... - как?
YuriAM> а формруй целиком запрос в переменной, и дай на выполнение !

1. а как передавать имя базы в хранимую процедуру? каждый раз как дополнительный параметр? или можно как-то более красиво

2. если запрос сложный, с кучей join'ов, то все равно весь его пихать в одну переменную??? а потом EXEC ('...'). будет ли в таком случае процедура при выполнении компилироваться каждый раз и, соответственно, тормозить в отличие от нормального select'а?
...
Рейтинг: 0 / 0
02.12.2002, 15:58:50
    #32074711
YuriAM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select ... from @basename+... - как?
Все верно.
DECLARE @strTemp varchar(4000) ( хочу сказать достаточно большой )
и получай внутри весь запрос.
EXEC ( @strTemp )
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / select ... from @basename+... - как? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]