powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SELECT * FROM [TAB@DB]
7 сообщений из 7, страница 1 из 1
SELECT * FROM [TAB@DB]
    #32022794
VMAIL@MAILRU.COM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Каким образом возможно передать в выражение FROM наименование таблицы, которое определялось бы параметром?
Надо
SET @DB='DB1'
SELECT * FROM [TAB@DB]
ВМЕСТО
SELECT * FROM [TABDB1]
...
Рейтинг: 0 / 0
SELECT * FROM [TAB@DB]
    #32022798
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В лоб - никаким. В обход лба - с помощью динамического SQL:
exec (@StringVar)
...
Рейтинг: 0 / 0
SELECT * FROM [TAB@DB]
    #32022800
vmail@mailru.com
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SET @TAB='TAB'+@DB
EXEC('SELECT * INTO #TABDB FROM @TAB') ?
Не спасает. Может что не так?
...
Рейтинг: 0 / 0
SELECT * FROM [TAB@DB]
    #32022809
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
set @SQL_String='SELECT * FROM TAB'+@DB
exec(@SQL_String)
...
Рейтинг: 0 / 0
SELECT * FROM [TAB@DB]
    #32022823
vmail@mailru.com
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ещё один вопрос
Мне необходимо использовати select * into #tab
Но сктипт срабатывает только если into не временная таблица.
С чем это может быть свяэано и возможно ли делать в динамическом SQL into во временные таблицы в принципе?
...
Рейтинг: 0 / 0
SELECT * FROM [TAB@DB]
    #32022826
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> возможно ли делать в динамическом SQL into во временные таблицы в принципе?

Все возможно... (если осторожно).


Нужно только понимать (или - тупо знать?), что любая временная таблица существует и доступна в рамках отдельной сессии пользователя, а динамический SQL выполняется в другой сессии, отличной от сессии скрипта, или процедуры, из которой он вызывается...

Т.о. для чтения из временной таблицы полученной через SELECT * INTO #TMP ... в динамическом SQL - нужно обращаться к ней в той же сессии (читай - строке выполнения, которая передается команде EXEC):

типа так - EXEC('SELECT name INTO #TMP FROM sysobjects SELECT * FROM #TMP') - правда толку от этого маловато.

Обычно в основной процедуре исполнения создают временную таблицу заранее, а потом уже вставляют в нее данные через динамический SQL:

типа так -

SELECT name INTO #TMP FROM sysobjects WHERE 1=0
EXEC('INSERT INTO #TMP SELECT name FROM sysobjects')
SELECT * FROM #TMP
...
Рейтинг: 0 / 0
SELECT * FROM [TAB@DB]
    #32022832
VMAIL@MAILRU.COM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ксати использование ## решает проблему
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SELECT * FROM [TAB@DB]
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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