-
из-за ключёв я думаю :)
-
Следует триггеры воспринимать лишь как дополнительное средство программирования НА СТОРОН СЕРВЕРА и не более того. Дополнительное. В клиент-серверных системах существует, грубо говоря, две "крайние" концепции построения логики: чисто клиентская, когда сервер занимается только исполнением запросов от клиента с минимумом "самостоятельности", контроль же за целостностью данных, учет реплик, "сервисные" функции и т.д. остаются на "совести" клиента и чисто серверная, когда максимум алгоритмов реализуются самим сервером, клиент же лишь обращается к набору "макро"-функций, зачастую даже не имея представления о физическом представлении данных на сервере и не неся ответственности ни за целостность данных, ни за их полноту и корректность
В каждом конктретном случае применяется собственная "средняя" концепция, заключающаяся в некоей комбинации этих двух концепций. Причем очень часто текущая концепция модели со временем постепенно транформируются от первой крайности ко второй или наоборот. Не зная предметной области и поставленных перед разработчиком СУБД задач, невозможно советовать. Это все равно, что тащить в операционную больного, не удосужившись хотя бы спросить у него, где болит ;)
-
> чисто клиентская, когда сервер занимается только исполнением > запросов от клиента с минимумом "самостоятельности", контроль > же за целостностью данных, учет реплик, "сервисные" функции > и т.д. остаются на "совести" клиента
Нет такой "концепции". Это называется "всю жизнь лабали на фокспро, а потом пацаны сказали, что SQL server типа круто".
-
Где б программистов взять...
-
> профессионалы стараются избегать триггеров
Профессионалы в какой области? Профессионалы-гинекологи, возможно, и стараются избегать. Профессионалы-программисты СУБД триггеры знают, любят и умеют применять по назначению.
-
> Транзакции в триггере есть безусловное зло :)
Это смотря на каком сервере. На MSSQL, который, судя по синтаксису, у автора -- таки да. На других, у которых поведение транзакций не такое удодское, вполне себе имеет право на жизнь.
-
Сорри, а как производится пакетная вставка ?
-
Сорри, а что такое "пакетная вставка"?
Bulk insert, что-ли? Она производится быстро. Триггеры, кстати, при ней могут не срабатывать (зависит от опций).
Или что-то другое имелось в виду?
-
> Или что-то другое имелось в виду?
А я хз, потому и спрашиваю...
-
> А я хз, потому и спрашиваю...
Жжошь. Чего ты хз? Ты эти волшебные слова где услышал?
-
sql (29.08.08 13:58) [26] Insert Into select from
При этом Select возвращает не 1 запись а много.
-
Я так понимаю в переменные ты хочешь записывать значения из Inserted,Deleted или я неправильно понял?
-
> stas © (29.08.08 14:45) [31]
Правильно.
-
> Polevi © (29.08.08 12:02) [4] > профессионалы стараются избегать триггеров
Это сильно сказано! Также как и слова, что вся целостность данных может быть поддержана "... такими как PK-FK constraints... ХП"
Да. Даже не знаю, что ответить... Особенно про ХП? Знаю такой стиль - применение ХП вместо DML. Мало того, что это геморрой, но еще и обрубает все пути автоматизации генерирования этих DML средами разработки.
Вот пример для разминки ума. Есть рефлексивная связь в сущности Х. (Дерево - в простонародьи). Отследите-ка логическую ошибку "кольцевой связи" (т.е. если экземпляр сущности А является родительским для В. В - родительским для С. С - родительским для А).
-
> Чего ты хз?
хто его знает...
Ты эти волшебные слова где услышал?
Кто его знает...
-
DiamondShark © (29.08.08 14:37) [29] Это я писал выше. sql (29.08.08 14:48) [34] он о пакетной вставке говорит :-D
-
sql (29.08.08 14:47) [32] Вот, а если пройдет одновременная вставка или апдейт 10 записей, Inserted будет содержать 10 записей, как ты их сохранишь в переменные?
-
> Особенно про ХП? Знаю такой стиль - применение ХП вместо > DML. > Мало того, что это геморрой, но еще и обрубает все пути > автоматизации генерирования этих DML средами разработки.
понеслось... Однако - пятница...
-
> он о пакетной вставке говорит :-D
Нет, это ты о покетной вставке говоришь. Я о ней просто спросил: "Что это ?". Потому что сразу не понял....
ЗЫ:
> stas © (29.08.08 12:30) [18] > Вверху общие. > > Я сразу скажу этот лог (как в примере) работать будет некорректно > при пакетной вставке, удалении обновлении.
Ну поидеи Inserted, ...., ....d, по одной записи содержат..., или все же если пакетная вставка, ..., ..., весь пакет записей и держат... ?
-
> Вот, а если пройдет одновременная вставка или апдейт 10 > записей, Inserted будет содержать 10 записей, как ты их > сохранишь в переменные?
получил ответ на вопрос.
Ну поидеи Inserted, ...., ....d, по одной записи содержат..., или все же если пакетная вставка, ..., ..., весь пакет записей и держат... ?
...
|