|
Можно ли передать в хранимую процедуру имя колонки?
|
|||
---|---|---|---|
#18+
Только ногами не пинайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2001, 10:25 |
|
Можно ли передать в хранимую процедуру имя колонки?
|
|||
---|---|---|---|
#18+
А че ж нельзя? Можно! Create Procedure myProc @colname nvarchar(20), @val nvarchar(10) AS Declare @qry nvarchar(256) Set @qry = 'Select * From myTable Where ' + @colname + ' = ' + @val Exec(@qry) Вот так, к примеру... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2001, 10:37 |
|
Можно ли передать в хранимую процедуру имя колонки?
|
|||
---|---|---|---|
#18+
Это неплохо, если запросик маленький, а если он строчек эдак на 15-20? Формировать такую строку не очень красиво. Жаль, что в MS SQL нет такого понятия, как макроподстановка. А неплохо было бы иметь возможность написать что-то вроде SELECT * FROM @Table1 или SELECT t.@Col1, t.@Col2 FROM Table1 маразм конечно, но идея понятна. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2001, 10:08 |
|
Можно ли передать в хранимую процедуру имя колонки?
|
|||
---|---|---|---|
#18+
Все колонки можно пронумеровать и в процедуру передавать номер колонки, а не имя. В процедуре в зависимости от номера выполняется соответствующий код. Если Вы скажете, что код для разных колонок одинаковый, то это означает что один алгоритм может обрабатывать разные колонки или таблицы. Если разные колонки или разные таблицы обрабатываются одинаково, то эти колонки или таблицы следует объединить в одну и нет проблем с параметром в виде имени колонки. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2001, 15:26 |
|
Можно ли передать в хранимую процедуру имя колонки?
|
|||
---|---|---|---|
#18+
В даннм случае может помочь 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] ... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2001, 10:22 |
|
|
start [/forum/topic.php?fid=46&msg=32001553&tid=1827468]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 132ms |
0 / 0 |