powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / имя таблицы в процедуре
6 сообщений из 6, страница 1 из 1
имя таблицы в процедуре
    #36287385
1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ase 15

можно ли в процедуру передать имя таблицы в качестве параметра
что то типа
Код: plaintext
1.
2.
3.
create procedure test (@tablename varchar ( 30 ))
as
select * from tablename
...
Рейтинг: 0 / 0
имя таблицы в процедуре
    #36287449
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1,

Думаю что НЕТ! Но можно сделать динамический SQL

Код: plaintext
1.
2.
3.
4.
create procedure test (@tablename varchar ( 30 ))
as
declare @str varchar( 255 )
select @str = 'select * from ' + @tablename
exec (@str)
...
Рейтинг: 0 / 0
имя таблицы в процедуре
    #36287704
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 wrote:

> можно ли в процедуру передать имя таблицы в качестве параметра
> что то типа
>
> create procedure test (@tablename varchar (*30*))
> as
> select * from tablename

Передавать можно. А вот так

select * from @tablename

писать нельзя.

Можно использовать динамический SQL ( exec ('sqlstring') ),
но текст запроса придётся формировать самому, на TSQL, что уже
не очень хорошо, и само использование динамического SQL я бы
не рекомендовал. И сложно, и небезопасно, и проблемы с производительностью
могут быть. Да и вообще это -- не по SQL -евски.

В общем, лучше сразу же откажитесь от такой дурацкой идеи, как
передавать имя обрабатываемой таблицы в процедуру.

Если у вас много таблиц с одинаковой структурой -- слейте их лучше в одну
таблицу, и работайте с ней нормально.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
имя таблицы в процедуре
    #36287923
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если предполагается использовать данные из нескольких одинаковых по структуре таблиц, тогда лучше всего сделать обертку на процедуру, которая будет данные из нужной таблицы копировать в некоторую темповую - а уже внутри процедуры работать четко с темповой.
...
Рейтинг: 0 / 0
имя таблицы в процедуре
    #36287942
1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо за ответы

много одинаковых таблиц, и как бы хотел сделать обработку в одной процедуре
но с учетом того что запросы сложные то проще будет сделать сначал выборку нужных данных из таблиц в темп а потом уже с ней работать
...
Рейтинг: 0 / 0
имя таблицы в процедуре
    #36290973
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё, одна причина - по которой не стоит передавать имя таблицы в процедуру - это безопасность ваших данных.
Решение могут просто элементарно завернуть и жалко будет потраченного времени.
Напишите отдельную проку для каждой таблицы и вызывайте по мере надобности.

Оно и быстрее работать будет.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / имя таблицы в процедуре
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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