![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
тип параметра "множество" [MSSQL]
Bogdan1024 © (2007-07-13 14:08:00)Хочу в MSSQL2005 создать хранимую процедуру вроде такой:
SELECT * FROM A WHERE ID IN @IDs
Какого типа должен быть параметр @IDs? Как это записать?
Bogdan1024 (2007-07-13 16:43:00) [1]> Ну во-первых она может и гораздо сложнее быть.
> А во-вторых, лично у меня всё только через ХП.
Yes to All
Jan1 (2007-07-13 16:10:00) [2]
> Ну во-первых она может и гораздо сложнее быть.
вопрос был именно про такую ХП.
> А во-вторых, лично у меня всё только через ХП.
ничего хорошего в крайностях нет...
Ega23 (2007-07-13 16:05:00) [3]
> в чем сакральный смысл такой ХП?
Ну во-первых она может и гораздо сложнее быть.
А во-вторых, лично у меня всё только через ХП.
Jan1 (2007-07-13 15:55:00) [4]
> SELECT * FROM A WHERE ID IN @IDs
в чем сакральный смысл такой ХП?
Desdechado (2007-07-13 15:54:00) [5]Еще как вариант, эти натыканные юзером можно складывать во временную таблицу, и потом юзать ее. Но это подходит в случае, когда много запросов используют одно множество. Для одного-двух это хуже, чем динамическая лепка.
Bogdan1024 (2007-07-13 15:41:00) [6]Ega23> Почему????
Я> Ну, я это имел ввиду:
Desdechado> Динамическая лепка хоть и красива, но больно бьет по серверу.
Я> :)
Desdechado (2007-07-13 15:17:00) [7]Как вариант, сформировать это множество как выборку из другой таблицы по какому-нибудь групповому признаку. Хотя это не всегда и возможно (например, нужно использовать "что юзер натыкал", а тут никакого группового признака не найти).
Desdechado (2007-07-13 15:16:00) [8]Это не параметризуется, увы.
А динамическая лепка хоть и красива, но больно бьет по серверу.
Ega23 (2007-07-13 15:09:00) [9]
> Ega23, спасибо!!! Но такой же способ не позволяет круто
> скомпилировать хранимую процедуру, жаль :(
Почему????
> MsGuns, а что такое ХП?
ХП - Хранимая Процедура
Bogdan1024 (2007-07-13 15:03:00) [10]Ega23, спасибо!!! Но такой же способ не позволяет круто скомпилировать хранимую процедуру, жаль :(
MsGuns, а что такое ХП?
MsGuns (2007-07-13 14:23:00) [11]Если невозможно заранее определить кол-во входных параметров, то мы делаем просто: параметр один - строковый, а ХП еге "режет" на кусочки, которые и пихает в запросы например
Ega23 (2007-07-13 14:12:00) [12]varchar
а выполнять - exec('SELECT * FROM A WHERE ID IN (' + @IDs + ')');