Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / ERwin 4.0 криво генерирует RI-триггеры / 6 сообщений из 6, страница 1 из 1
14.07.2005, 13:24
    #33165809
goodron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ERwin 4.0 криво генерирует RI-триггеры
Доброе время суток, господа разработчики!
Столкнулся с такой проблемой:
Если установить между двумя сущностями неидентифицирующую необязательно, то после генерации SQL кода и выполнении его в Query Analyzer'e возникают ошибки. Если же связь обязательная NOT NULLs, то генерация базы проходит без ошибок.
В чем дело? Как этого избежать? Неужели вручную придется все триггеры писать?
...
Рейтинг: 0 / 0
14.07.2005, 13:26
    #33165818
goodron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ERwin 4.0 криво генерирует RI-триггеры
Просьба модераторам перенести данную тему в соответствующую ветку. Случайно создал не там.
...
Рейтинг: 0 / 0
14.07.2005, 14:16
    #33166017
goodron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ERwin 4.0 криво генерирует RI-триггеры
Вот, например, структура таблиц:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
CREATE TABLE Transformator (
       idTransformator      int IDENTITY,
       dispName             varchar( 20 ) NOT NULL,
       idTrType             int NOT NULL
)
go

ALTER TABLE Transformator
       ADD PRIMARY KEY NONCLUSTERED (idTransformator)
go

CREATE TABLE TrType (
       idTrType             int IDENTITY,
       trType               varchar( 20 ) NOT NULL
)
go

ALTER TABLE TrType
       ADD PRIMARY KEY NONCLUSTERED (idTrType)
go

ALTER TABLE Transformator
       ADD FOREIGN KEY (idTrType)
                             REFERENCES TrType
go

А вот триггер, который он генерит:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
create trigger tI_Transformator on Transformator for INSERT as
/* ERwin Builtin Thu Jul 14 14:09:07 2005 */
/* INSERT trigger on Transformator */
begin
  declare  @numrows int,
           @nullcnt int,
           @validcnt int,
           @errno   int,
           @errmsg  varchar( 255 )

  select @numrows = @@rowcount
  /* ERwin Builtin Thu Jul 14 14:09:07 2005 */
  /* TrType R/2 Transformator ON CHILD INSERT SET NULL */
  if
    /* update(idTrType) */
    update(idTrType)
  begin
    update Transformator
      set
        /* Transformator.idTrType = NULL */
        Transformator.idTrType = NULL
      from Transformator,inserted
      where
        /*  */
     and
        not exists (
          select * from TrType
          where
            /* inserted.idTrType = TrType.idTrType */
            inserted.idTrType = TrType.idTrType
        )
  end


  /* ERwin Builtin Thu Jul 14 14:09:07 2005 */
  return
error:
    raiserror @errno @errmsg
    rollback transaction
end
go

А вот ошибка:
Server: Msg 156, Level 15, State 1, Procedure tI_Transformator, Line 29
Incorrect syntax near the keyword 'and'.
Слово 'and' выделено жирным.
В чем дело? Как избежать?
...
Рейтинг: 0 / 0
14.07.2005, 14:26
    #33166055
goodron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ERwin 4.0 криво генерирует RI-триггеры
Ошибка:
"неидентифицирующую необязательно"
Надо читать:
"неидентифицирующую необязательную связь"
...
Рейтинг: 0 / 0
14.07.2005, 15:21
    #33166263
goodron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ERwin 4.0 криво генерирует RI-триггеры
PowerDesigner v.10 вообще никаких триггеров не генерирует - только структуру таблиц. Хотя я явно в Reference Properties в закладке Integrity в поле Implementation указываю Trigger и задаю необходимые constraint.
...
Рейтинг: 0 / 0
14.07.2005, 17:11
    #33166709
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ERwin 4.0 криво генерирует RI-триггеры
goodronPowerDesigner v.10 вообще никаких триггеров не генерирует - только структуру таблиц. Хотя я явно в Reference Properties в закладке Integrity в поле Implementation указываю Trigger и задаю необходимые constraint.
Скажи Tools->Rebuild Objects->Rebuild Triggers (Ctrl+Shift+T).
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / ERwin 4.0 криво генерирует RI-триггеры / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]