powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Можно ли передать в хранимую процедуру имя колонки?
5 сообщений из 5, страница 1 из 1
Можно ли передать в хранимую процедуру имя колонки?
    #32001552
Running Man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Только ногами не пинайте.
...
Рейтинг: 0 / 0
Можно ли передать в хранимую процедуру имя колонки?
    #32001553
Staple
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А че ж нельзя? Можно!

Create Procedure myProc
@colname nvarchar(20),
@val nvarchar(10)
AS
Declare @qry nvarchar(256)
Set @qry = 'Select * From myTable Where ' + @colname + ' = ' + @val
Exec(@qry)

Вот так, к примеру...
...
Рейтинг: 0 / 0
Можно ли передать в хранимую процедуру имя колонки?
    #32001575
AnKa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это неплохо, если запросик маленький, а если он строчек эдак на 15-20? Формировать такую строку не очень красиво. Жаль, что в MS SQL нет такого понятия, как макроподстановка. А неплохо было бы иметь возможность написать что-то вроде

SELECT *
FROM @Table1

или

SELECT t.@Col1, t.@Col2
FROM
Table1

маразм конечно, но идея понятна.
...
Рейтинг: 0 / 0
Можно ли передать в хранимую процедуру имя колонки?
    #32001582
VadimB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все колонки можно пронумеровать и в процедуру передавать номер колонки, а не имя.
В процедуре в зависимости от номера выполняется соответствующий код.

Если Вы скажете, что код для разных колонок одинаковый, то
это означает что один алгоритм может обрабатывать разные колонки или таблицы.
Если разные колонки или разные таблицы обрабатываются одинаково, то
эти колонки или таблицы следует объединить в одну и нет проблем с параметром в виде имени колонки.
...
Рейтинг: 0 / 0
Можно ли передать в хранимую процедуру имя колонки?
    #32001598
merlin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В даннм случае может помочь case в запросах
declare col_id int
..
select col_id = 3 -- например

В процедуре
сreate proc proc1 (... col_id int ...)
as
...
select case col_id
when 1 then [column1]
when 2 then [column2]
when 3 then [column3]
...
end
from [table]
...
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Можно ли передать в хранимую процедуру имя колонки?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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