Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Подпроцедуры  [new]
mezzanine
Member

Откуда:
Сообщений: 157
Добрый день.

Можно ли объявлять подпроцедуры?

Как-то не хочется создавать тонну процедур, а использовать метки моветон.
12 фев 16, 19:05    [18810909]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
Glory
Member

Откуда:
Сообщений: 104751
mezzanine
Можно ли объявлять подпроцедуры?

нет

mezzanine
Как-то не хочется создавать тонну процедур

не хочется - не создавайте
12 фев 16, 19:06    [18810917]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
Crimean
Member

Откуда:
Сообщений: 13147
писать объемные проекты на t-sql вообще моветон. оно не для этого
12 фев 16, 19:11    [18810934]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Crimean
писать объемные проекты на t-sql вообще моветон. оно не для этого
А на чем писать? На PL/SQL? xD
12 фев 16, 19:16    [18810948]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
mezzanine
Member

Откуда:
Сообщений: 157
Crimean,

Подскажите для чего он? Что не спросишь ответ один он не для этого.
Если T-SQL — процедурное расширение языка SQL, то что же с помощью его делать.
12 фев 16, 19:24    [18810968]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
Glory
Member

Откуда:
Сообщений: 104751
mezzanine
Если T-SQL — процедурное расширение языка SQL, то что же с помощью его делать.

Процедуры с линейной логикой
12 фев 16, 20:23    [18811112]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
mezzanine
Member

Откуда:
Сообщений: 157
Glory,

Линейная логика как раз не типична для бизнес логики. Довольно мощный SQL движок и прошлое тысячелетие в процедурном.
12 фев 16, 22:21    [18811516]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1836
mezzanine,


закатывайте в сборки среды CLR *dunno*
12 фев 16, 22:39    [18811547]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
Mike_za
Member

Откуда: Москва
Сообщений: 1176
mezzanine, в одной большой конторе использовали версии процедур. Но это та еще пакость
12 фев 16, 22:42    [18811558]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
Glory
Member

Откуда:
Сообщений: 104751
mezzanine
Линейная логика как раз не типична для бизнес логики. Довольно мощный SQL движок и прошлое тысячелетие в процедурном.

А кто вам сказал, что SQL для нелининейной бизнес логики предназначен ?
13 фев 16, 12:20    [18812631]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
mezzanine
Member

Откуда:
Сообщений: 157
Glory,

Не предназначен. Поэтому и появляются T-SQL и прочие расширения. Но T-SQL это динозавр. Часто пишут сделай библиотеку на С#, но к сожалению скорость такого решения желает лучшего. Опять же для бизнеса это не приемлемо.
13 фев 16, 13:19    [18812758]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
Glory
Member

Откуда:
Сообщений: 104751
mezzanine
Не предназначен. Поэтому и появляются T-SQL и прочие расширения. Но T-SQL это динозавр. Часто пишут сделай библиотеку на С#, но к сожалению скорость такого решения желает лучшего. Опять же для бизнеса это не приемлемо.

Если у вас есть советы о том, как должен выглядеть TSQL, то помещайте их на специальном ресурсе производителя, а не в форуме.
13 фев 16, 13:23    [18812772]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8807
Сервер баз данных предназначен для целостного, достоверного и непротиворечивого хранения и выборки данных.
Если требуется какая-то сложная бизнес-логика, то ее разработку лучше вынести в отдельный "слой" приложений.
Это, в общем-то, касается любой СУБД. Попытки создать гибрид, как правило, завидят развитие проектов в тупик и непропорционально увеличивают затраты на его сопровождение.
15 фев 16, 10:59    [18816794]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
Acce_Ekb
Member

Откуда: Екатеринбург
Сообщений: 87
Владислав Колосов
Сервер баз данных предназначен для целостного, достоверного и непротиворечивого хранения и выборки данных.
Если требуется какая-то сложная бизнес-логика, то ее разработку лучше вынести в отдельный "слой" приложений.
Это, в общем-то, касается любой СУБД. Попытки создать гибрид, как правило, завидят развитие проектов в тупик и непропорционально увеличивают затраты на его сопровождение.


Термин "бизнес-логика" по разному толкуют.
Вычисление данных для отчета на основе первичных данных из БД - это бизнес-логика или "выборка данных"?
15 фев 16, 11:08    [18816836]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
invm
Member

Откуда: Москва
Сообщений: 9827
Владислав Колосов
Если требуется какая-то сложная бизнес-логика, то ее разработку лучше вынести в отдельный "слой" приложений.
Ну да, ведь реализацию бизнес-логики на стороне СУБД придумали идиоты.
Ежу понятно, что гораздо выгоднее вычитывать данные в приложение и обрабатывать их там императивным образом.
15 фев 16, 11:14    [18816885]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
Megabyte
Member

Откуда: ближайшее заМКАДье
Сообщений: 4997
Владислав Колосов
Если требуется какая-то сложная бизнес-логика, то ее разработку лучше вынести в отдельный "слой" приложений.

"А мужики и не знали..." (с)
15 фев 16, 11:17    [18816903]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8807
Acce_Ekb,

Хороший вопрос, т.к. сервер обладает средствами для выполнения различных действий не только над множествами данных, но и над отдельными элементами множеств и даже файловой системой. Полагаю, что прежде, чем нарушать правила, надо хорошо усвоить риски этих нарушений и уметь оценивать последствия.

Определенная часть логики, которая касается обработки множеств, вполне вероятно, должна находиться на сервере. Однако, пытаться создавать "обертки" в "обертке" или "крутить циклы" может привести к нежелаемым последствиям.

Мне кажется, что чем раньше разработчик признает определенные базовые требования при работе с данными, тем это будет лучше.
15 фев 16, 11:22    [18816929]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
defragmentator
Member

Откуда:
Сообщений: 20504
Acce_Ekb
Владислав Колосов
Сервер баз данных предназначен для целостного, достоверного и непротиворечивого хранения и выборки данных.
Если требуется какая-то сложная бизнес-логика, то ее разработку лучше вынести в отдельный "слой" приложений.
Это, в общем-то, касается любой СУБД. Попытки создать гибрид, как правило, завидят развитие проектов в тупик и непропорционально увеличивают затраты на его сопровождение.


Термин "бизнес-логика" по разному толкуют.
Вычисление данных для отчета на основе первичных данных из БД - это бизнес-логика или "выборка данных"?


Да, иногда проще создать лишний job чем накручивать ещё один слой приложений.
Не всегда прав В.Колосов.
Писать ООП для обработки данных сервера не всегда приятно
15 фев 16, 14:13    [18818011]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
Jaffar
Member

Откуда:
Сообщений: 633
Владислав Колосов
Сервер баз данных предназначен для целостного, достоверного и непротиворечивого хранения и выборки данных.
Если требуется какая-то сложная бизнес-логика, то ее разработку лучше вынести в отдельный "слой" приложений.
Это, в общем-то, касается любой СУБД. Попытки создать гибрид, как правило, завидят развитие проектов в тупик и непропорционально увеличивают затраты на его сопровождение.



Вообще не согласен с вами.
1.Потому как данные и алгоритмы которые их обрабатывают должны быть в одном месте.
2.Например Все банки, о которых я знаю работают именно так, бизнес логика и данные в СУБД, 25 лет без тупиков(ни единого разрыва с октября 1990 года....).
3.Все особо хитрое и вычурное(типа тройных интегралов и т.п.) + можно вынести в CLR, только без фанатизма.
15 фев 16, 14:27    [18818091]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
Шыфл
Member

Откуда: Прага
Сообщений: 776
Или я не с тем работаю, или все разработчики, которые писали до меня - му**ки. Иначе почему: отсустивие констрейнтов и внешних ключей, триггеры на 1500 строк кода и 1215 процедур на 388 таблиц? Хотя всё это работает уже 30 лет...
15 фев 16, 15:15    [18818483]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4893
Glory
mezzanine
Можно ли объявлять подпроцедуры?

нет

mezzanine
Как-то не хочется создавать тонну процедур

не хочется - не создавайте


Подпроцедур даже на .NET нет. А вы на SQL хитите. Это устаревший плохой стиль.
15 фев 16, 15:18    [18818507]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
mezzanine
Member

Откуда:
Сообщений: 157
a_voronin,

На SQL не хочу, на T-SQL хочу. Предлагаете объекты на этом самокате?
15 фев 16, 15:27    [18818584]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
invm
Member

Откуда: Москва
Сообщений: 9827
a_voronin
Это устаревший плохой стиль.
Отличный совет от "бывалого" архитектора.
Всем срочно перестать писать хранимые процедуры и переходить на EF с code first и linq2sql.
15 фев 16, 15:31    [18818628]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
invm
Member

Откуда: Москва
Сообщений: 9827
mezzanine,

Покажите пример, где вам потребовались "подпроцедуры".
15 фев 16, 15:38    [18818676]     Ответить | Цитировать Сообщить модератору
 Re: Подпроцедуры  [new]
mezzanine
Member

Откуда:
Сообщений: 157
invm,

Тут дело не в моем конкретном случае. Знаю что кусочек кода нужно выполнять 2 и более раз но только в пределах одной большой процедуры. Выставлять ее для целой базы нет смысла. Потом и появляются 1000+ процедур.
15 фев 16, 15:47    [18818743]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить