Конференция "Базы" » Транзакции в триггере
 
  • Palladin © (29.08.08 12:52) [20]
    из-за ключёв я думаю :)
  • MsGuns © (29.08.08 12:54) [21]
    Следует триггеры воспринимать лишь как дополнительное средство программирования НА СТОРОН СЕРВЕРА и не более того. Дополнительное.
    В клиент-серверных системах существует, грубо говоря, две "крайние" концепции построения логики:
     чисто клиентская, когда сервер занимается только исполнением запросов от клиента с минимумом "самостоятельности", контроль же за целостностью данных, учет реплик, "сервисные" функции и т.д. остаются на "совести" клиента
      и
    чисто серверная, когда максимум алгоритмов реализуются самим сервером, клиент же лишь обращается к набору "макро"-функций, зачастую даже не имея представления о физическом представлении данных на сервере и не неся ответственности ни за целостность данных, ни за их полноту и корректность

    В каждом конктретном случае применяется собственная "средняя" концепция, заключающаяся в некоей комбинации этих двух концепций. Причем очень часто текущая концепция модели со временем постепенно транформируются от первой крайности ко второй или наоборот. Не зная предметной области и поставленных перед разработчиком СУБД задач, невозможно советовать. Это все равно, что тащить в операционную больного, не удосужившись хотя бы спросить у него, где болит ;)
  • DiamondShark © (29.08.08 13:28) [22]

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

    Нет такой "концепции".
    Это называется "всю жизнь лабали на фокспро, а потом пацаны сказали, что SQL server типа круто".
  • Игорь Шевченко © (29.08.08 13:32) [23]
    Где б программистов взять...
  • DiamondShark © (29.08.08 13:33) [24]

    > профессионалы стараются избегать триггеров

    Профессионалы в какой области? Профессионалы-гинекологи, возможно, и стараются избегать. Профессионалы-программисты СУБД триггеры знают, любят и умеют применять по назначению.
  • DiamondShark © (29.08.08 13:38) [25]

    > Транзакции в триггере есть безусловное зло :)

    Это смотря на каком сервере.
    На MSSQL, который, судя по синтаксису, у автора -- таки да.
    На других, у которых поведение транзакций не такое удодское, вполне себе имеет право на жизнь.
  • sql (29.08.08 13:58) [26]
    Сорри, а как производится пакетная вставка ?
  • DiamondShark © (29.08.08 14:16) [27]
    Сорри, а что такое "пакетная вставка"?

    Bulk insert, что-ли? Она производится быстро. Триггеры, кстати, при ней могут не срабатывать (зависит от опций).

    Или что-то другое имелось в виду?
  • sql (29.08.08 14:17) [28]

    > Или что-то другое имелось в виду?

    А я хз, потому и спрашиваю...
  • DiamondShark © (29.08.08 14:37) [29]

    > А я хз, потому и спрашиваю...

    Жжошь.
    Чего ты хз? Ты эти волшебные слова где услышал?
  • stas © (29.08.08 14:42) [30]
    sql   (29.08.08 13:58) [26]
    Insert Into
    select from

    При этом Select возвращает не 1 запись а много.
  • stas © (29.08.08 14:45) [31]
    Я так понимаю в переменные ты хочешь записывать значения из Inserted,Deleted или я неправильно понял?
  • sql (29.08.08 14:47) [32]

    > stas ©   (29.08.08 14:45) [31]

    Правильно.
  • Курдль (29.08.08 14:47) [33]

    > Polevi ©   (29.08.08 12:02) [4]
    > профессионалы стараются избегать триггеров


    Это сильно сказано! Также как и слова, что вся целостность данных может быть поддержана "... такими как PK-FK constraints... ХП"

    Да. Даже не знаю, что ответить...
    Особенно про ХП? Знаю такой стиль - применение ХП вместо DML.
    Мало того, что это геморрой, но еще и обрубает все пути автоматизации генерирования этих DML средами разработки.

    Вот пример для разминки ума.
    Есть рефлексивная связь в сущности Х. (Дерево - в простонародьи).
    Отследите-ка логическую ошибку "кольцевой связи" (т.е. если экземпляр сущности А является родительским для В. В - родительским для С. С - родительским для А).
  • sql (29.08.08 14:48) [34]

    > Чего ты хз?

    хто его знает...


    Ты эти волшебные слова где услышал?

    Кто его знает...
  • stas © (29.08.08 14:51) [35]
    DiamondShark ©   (29.08.08 14:37) [29]
    Это я писал выше.
    sql   (29.08.08 14:48) [34]
    он о пакетной вставке говорит :-D
  • stas © (29.08.08 14:53) [36]
    sql   (29.08.08 14:47) [32]
    Вот, а если пройдет одновременная вставка или апдейт 10 записей, Inserted будет содержать 10 записей, как ты их сохранишь в переменные?
  • Ega23 © (29.08.08 14:55) [37]

    > Особенно про ХП? Знаю такой стиль - применение ХП вместо
    > DML.
    > Мало того, что это геморрой, но еще и обрубает все пути
    > автоматизации генерирования этих DML средами разработки.


    понеслось...
    Однако - пятница...
  • sql (29.08.08 14:57) [38]

    > он о пакетной вставке говорит :-D

    Нет, это ты о покетной вставке говоришь. Я о ней просто спросил: "Что это ?". Потому что сразу не понял....

    ЗЫ:


    > stas ©   (29.08.08 12:30) [18]
    > Вверху общие.
    >
    > Я сразу скажу этот лог (как в примере) работать будет некорректно
    > при пакетной вставке, удалении обновлении.


    Ну поидеи Inserted, ...., ....d, по одной записи содержат..., или все же если пакетная вставка, ..., ..., весь пакет записей и держат... ?
  • sql (29.08.08 14:58) [39]

    > Вот, а если пройдет одновременная вставка или апдейт 10
    > записей, Inserted будет содержать 10 записей, как ты их
    > сохранишь в переменные?


    получил ответ на вопрос.

    Ну поидеи Inserted, ...., ....d, по одной записи содержат..., или все же если пакетная вставка, ..., ..., весь пакет записей и держат... ?

    ...
 
Конференция "Базы" » Транзакции в триггере
Есть новые Нет новых   [134473   +28][b:0.001][p:0.001]