powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Переменные в имени таблицы (... FROM @myvar)
4 сообщений из 4, страница 1 из 1
Переменные в имени таблицы (... FROM @myvar)
    #32029847
AndyM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hi ALL!!!
Вот такой вопросик мне нужно организовать примерно вот что:
в хранимую процедуру передается имя таблицы (в переменную @table_name).
в теле процедуры предположим это:

DECLARE @max_id tid
SELECT @max_id = MAX(Id) FROM @table_name

и далее мне нужно в зависимости от значения @max_id что то сделать.
как это можно реализовать??? ведь нельзя в имени таблицы указывать переменную.

пробовал: EXEC('SELECT @max_id = MAX(Id) FROM '+@table_name)
говорит нет переменной @max_id
тогда: EXEC('DECLARE @max_id bigint SELECT @max_id = MAX(Id) FROM '+@table_name)
работает... но нельзя получить значение переменной @max_id...
...
Рейтинг: 0 / 0
Переменные в имени таблицы (... FROM @myvar)
    #32029849
Фотография VVG_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделай так:

EXEC('SELECT MAX(Id) as Max_ID into ##tmpmaxid FROM '+@table_name)
select @max_id=Max_ID from ##tmpmaxid
drop table ##tmpmaxid
...
Рейтинг: 0 / 0
Переменные в имени таблицы (... FROM @myvar)
    #32029851
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Переменные в имени таблицы (... FROM @myvar)
    #32029888
Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно сделать так:
exec('declare @max_id as bigint select @max_id=max(Id) from '+@table_name+' select @max_id')
проблема в том, что прийдется делать всю сп в зоне видимости этого exec, иначе переменная будет потеряна. Такова особенность работы транзакций.
Если нужно написать еще больщой код сп для дальнейшей работы с этой переменной, то лучше использовать пример с временной таблицей.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Переменные в имени таблицы (... FROM @myvar)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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