|
Могут ли функции или процедуры за параметр принимать целую таблицу?
|
|||
---|---|---|---|
#18+
Значения параметра, переданные при вызове процедуры, должны быть константами или переменными - оффишил документация. У функций тоже самое? То есть таблицы не могут быть параметрами, только их столбцы или числа? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2021, 11:31 |
|
Могут ли функции или процедуры за параметр принимать целую таблицу?
|
|||
---|---|---|---|
#18+
Функция может принимать другую функцию. А сработает функция, если вложенная функция выводит таблицу (RETURNS TABLE)? Например: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2021, 11:47 |
|
Могут ли функции или процедуры за параметр принимать целую таблицу?
|
|||
---|---|---|---|
#18+
sysn1k Значения параметра, переданные при вызове процедуры, должны быть константами или переменными - оффишил документация. У функций тоже самое? То есть таблицы не могут быть параметрами, только их столбцы или числа? Ваще то, табличные аргументы процедур имеют место быть. https://www.sqlshack.com/table-valued-parameters-in-sql-server/ Только не надо это. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2021, 12:14 |
|
Могут ли функции или процедуры за параметр принимать целую таблицу?
|
|||
---|---|---|---|
#18+
aleks222 Только не надо это. Почему, кстати? Какие противопоказания? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2021, 14:34 |
|
Могут ли функции или процедуры за параметр принимать целую таблицу?
|
|||
---|---|---|---|
#18+
uaggster Какие противопоказания? Если нужно изменить табличный тип, который уже используется в модулях, придется задействовать грязный хак. А если какие-то модули привязаны к схеме, то все будет совсем печально. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2021, 15:05 |
|
Могут ли функции или процедуры за параметр принимать целую таблицу?
|
|||
---|---|---|---|
#18+
sysn1k, вы можете, например, передать параметром имя таблицы или целое SQL-предложение и далее в процедуре использовать для динамического SQL (dynamic SQL) т.е. вы в процедуре формируете VARCHAR строку, содержащую SQL-запрос к, например, таблице, имя которой вы передали параметром процедуры. Ещё одним параметром, например, передаёте WHERE-часть. Этот запрос выполняете и что-то с результатами делаете. https://web-shpargalka.ru/ms-sql-dynamic-sql.php ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2021, 15:43 |
|
Могут ли функции или процедуры за параметр принимать целую таблицу?
|
|||
---|---|---|---|
#18+
invm uaggster Какие противопоказания? Если нужно изменить табличный тип, который уже используется в модулях, придется задействовать грязный хак. А если какие-то модули привязаны к схеме, то все будет совсем печально. Это про sp_rename ? А что в нем грязного? Примерно как order by 1/0 или Select @s=@s+strVield from tbl ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2021, 15:12 |
|
Могут ли функции или процедуры за параметр принимать целую таблицу?
|
|||
---|---|---|---|
#18+
Если пользоваться современными методами разработки, т.е. при помощи проекта, то студия сама автоматизирует все обновления и переименования. Но надо помнить, что это может вылиться в пересоздание массы объектов с заполнением данными. Лично я убедился и не раз, что применение пользовательских типов крайне неприятно при сопровождении проекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2021, 21:50 |
|
Могут ли функции или процедуры за параметр принимать целую таблицу?
|
|||
---|---|---|---|
#18+
Владислав Колосов Лично я убедился и не раз, что применение пользовательских типов крайне неприятно при сопровождении проекта. Ну, использование простых UDTT (по факту - массивов примитивов: таблица интов, таблица гуидов) пока что не подводило, и альтерить в таких типах просто нечего. Если в UDTT начинают расширяться-добавляться поля, то да, проще использовать альтернативные методы - временные таблицы, xml, итд. uaggster Это про sp_rename ? А что в нем грязного? То, что если UDTT задействован в schema-bound модуле, то этот хак не сработает. Придется сначала отвязать от схемы энное количество модулей, и эта цепочка (а её ещё нужно выяснить по зависимостям модулей) может быть длинной. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2021, 06:28 |
|
|
start [/forum/topic.php?fid=46&fpage=20&tid=1684524]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 139ms |
0 / 0 |