Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Можно ли передать в хранимую процедуру имя колонки? / 5 сообщений из 5, страница 1 из 1
16.01.2001, 10:25
    #32001552
Running Man
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли передать в хранимую процедуру имя колонки?
Только ногами не пинайте.
...
Рейтинг: 0 / 0
16.01.2001, 10:37
    #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
17.01.2001, 10:08
    #32001575
AnKa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли передать в хранимую процедуру имя колонки?
Это неплохо, если запросик маленький, а если он строчек эдак на 15-20? Формировать такую строку не очень красиво. Жаль, что в MS SQL нет такого понятия, как макроподстановка. А неплохо было бы иметь возможность написать что-то вроде

SELECT *
FROM @Table1

или

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

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

Если Вы скажете, что код для разных колонок одинаковый, то
это означает что один алгоритм может обрабатывать разные колонки или таблицы.
Если разные колонки или разные таблицы обрабатываются одинаково, то
эти колонки или таблицы следует объединить в одну и нет проблем с параметром в виде имени колонки.
...
Рейтинг: 0 / 0
18.01.2001, 10:22
    #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
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Можно ли передать в хранимую процедуру имя колонки? / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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