Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Переменные в имени таблицы (... FROM @myvar) / 4 сообщений из 4, страница 1 из 1
10.05.2002, 11:53
    #32029847
AndyM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменные в имени таблицы (... FROM @myvar)
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
10.05.2002, 12:41
    #32029849
VVG_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменные в имени таблицы (... FROM @myvar)
Сделай так:

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


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