· 8 years ago · Aug 18, 2018, 06:20 PM
1CREATE TABLE Группа
2(
3 Группа char varying(20) NOT NULL
4)
5go
6
7
8ALTER TABLE Группа
9 ADD CONSTRAINT XPKГруппа PRIMARY KEY NONCLUSTERED (Группа ASC)
10go
11
12
13CREATE TABLE Предмет
14(
15 Ðазвание_предмета char(18) NOT NULL
16)
17go
18
19
20ALTER TABLE Предмет
21 ADD CONSTRAINT XPKПредмет PRIMARY KEY NONCLUSTERED (Ðазвание_предмета ASC)
22go
23
24
25CREATE TABLE СпециальноÑть
26(
27 СпециальноÑть char varying(20) NOT NULL
28)
29go
30
31
32ALTER TABLE СпециальноÑть
33 ADD CONSTRAINT XPKСпециальноÑть PRIMARY KEY NONCLUSTERED (СпециальноÑть ASC)
34go
35
36
37CREATE TABLE Студенты
38(
39 СпециальноÑть char varying(20) NOT NULL ,
40 Группа char varying(20) NOT NULL ,
41 Ð¤Ð°Ð¼Ð¸Ð»Ð¸Ñ char varying(20) NULL ,
42 Ð˜Ð¼Ñ char varying(20) NULL ,
43 ОчеÑтво char varying(20) NULL ,
44 Дата_Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ datetime NULL ,
45 Город char varying(20) NULL ,
46 ОблаÑть char varying(20) NULL ,
47 ÐÐ´Ñ€ÐµÑ char varying(20) NULL ,
48 Домашний_номер char varying(20) NULL ,
49 Мобильный_номер char varying(20) NULL ,
50 email char varying(20) NULL ,
51 Ðомер_Зачетки integer NOT NULL
52)
53go
54
55
56ALTER TABLE Студенты
57 ADD CONSTRAINT XPKСтуденты PRIMARY KEY NONCLUSTERED (Группа ASC,СпециальноÑть ASC,Ðомер_Зачетки ASC)
58go
59
60
61CREATE TABLE УÑпеваемоÑть
62(
63 Предмет char varying(20) NULL ,
64 Оценка integer NULL ,
65 Ðазвание_предмета char(18) NOT NULL ,
66 Ðомер_Зачетки integer NOT NULL ,
67 Группа character varying(20) NOT NULL ,
68 СпециальноÑть character varying(20) NOT NULL
69)
70go
71
72
73ALTER TABLE УÑпеваемоÑть
74 ADD CONSTRAINT XPKУÑпеваемоÑть PRIMARY KEY NONCLUSTERED (Ðазвание_предмета ASC,Группа ASC,СпециальноÑть ASC,Ðомер_Зачетки ASC)
75go
76
77
78
79ALTER TABLE Студенты
80 ADD CONSTRAINT R_3 FOREIGN KEY (Группа) REFERENCES Группа(Группа)
81 ON DELETE NO ACTION
82 ON UPDATE NO ACTION
83go
84
85
86ALTER TABLE Студенты
87 ADD CONSTRAINT R_4 FOREIGN KEY (СпециальноÑть) REFERENCES СпециальноÑть(СпециальноÑть)
88 ON DELETE NO ACTION
89 ON UPDATE NO ACTION
90go
91
92
93
94ALTER TABLE УÑпеваемоÑть
95 ADD CONSTRAINT R_5 FOREIGN KEY (Ðазвание_предмета) REFERENCES Предмет(Ðазвание_предмета)
96 ON DELETE NO ACTION
97 ON UPDATE NO ACTION
98go
99
100
101ALTER TABLE УÑпеваемоÑть
102 ADD CONSTRAINT R_7 FOREIGN KEY (Группа,СпециальноÑть,Ðомер_Зачетки) REFERENCES Студенты(Группа,СпециальноÑть,Ðомер_Зачетки)
103 ON DELETE NO ACTION
104 ON UPDATE NO ACTION
105go
106
107
108
109CREATE TRIGGER tD_Группа ON Группа FOR DELETE AS
110/* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
111/* DELETE trigger on Группа */
112BEGIN
113 DECLARE @errno int,
114 @errmsg varchar(255)
115 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
116 /* Группа R/3 Студенты on parent delete no action */
117 /* ERWIN_RELATION:CHECKSUM="0000ec5c", PARENT_OWNER="", PARENT_TABLE="Группа"
118 CHILD_OWNER="", CHILD_TABLE="Студенты"
119 P2C_VERB_PHRASE="R/3", C2P_VERB_PHRASE="R/3",
120 FK_CONSTRAINT="R_3", FK_COLUMNS="Группа" */
121 IF EXISTS (
122 SELECT * FROM deleted,Студенты
123 WHERE
124 /* %JoinFKPK(Студенты,deleted," = "," AND") */
125 Студенты.Группа = deleted.Группа
126 )
127 BEGIN
128 SELECT @errno = 30001,
129 @errmsg = 'Cannot delete Группа because Студенты exists.'
130 GOTO ERROR
131 END
132
133
134 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
135 RETURN
136ERROR:
137 raiserror @errno @errmsg
138 rollback transaction
139END
140go
141
142CREATE TRIGGER tU_Группа ON Группа FOR UPDATE AS
143/* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
144/* UPDATE trigger on Группа */
145BEGIN
146 DECLARE @NUMROWS int,
147 @nullcnt int,
148 @validcnt int,
149 @insГруппа char varying(20),
150 @errno int,
151 @errmsg varchar(255)
152
153 SELECT @NUMROWS = @@rowcount
154 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
155 /* Группа R/3 Студенты on parent update no action */
156 /* ERWIN_RELATION:CHECKSUM="00010e71", PARENT_OWNER="", PARENT_TABLE="Группа"
157 CHILD_OWNER="", CHILD_TABLE="Студенты"
158 P2C_VERB_PHRASE="R/3", C2P_VERB_PHRASE="R/3",
159 FK_CONSTRAINT="R_3", FK_COLUMNS="Группа" */
160 IF
161 /* %ParentPK(" OR",UPDATE) */
162 UPDATE(Группа)
163 BEGIN
164 IF EXISTS (
165 SELECT * FROM deleted,Студенты
166 WHERE
167 /* %JoinFKPK(Студенты,deleted," = "," AND") */
168 Студенты.Группа = deleted.Группа
169 )
170 BEGIN
171 SELECT @errno = 30005,
172 @errmsg = 'Cannot update Группа because Студенты exists.'
173 GOTO ERROR
174 END
175 END
176
177
178 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
179 RETURN
180ERROR:
181 raiserror @errno @errmsg
182 rollback transaction
183END
184go
185
186
187CREATE TRIGGER tD_Предмет ON Предмет FOR DELETE AS
188/* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
189/* DELETE trigger on Предмет */
190BEGIN
191 DECLARE @errno int,
192 @errmsg varchar(255)
193 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
194 /* Предмет R/5 УÑпеваемоÑть on parent delete no action */
195 /* ERWIN_RELATION:CHECKSUM="00010d1f", PARENT_OWNER="", PARENT_TABLE="Предмет"
196 CHILD_OWNER="", CHILD_TABLE="УÑпеваемоÑть"
197 P2C_VERB_PHRASE="R/5", C2P_VERB_PHRASE="R/5",
198 FK_CONSTRAINT="R_5", FK_COLUMNS="Ðазвание_предмета" */
199 IF EXISTS (
200 SELECT * FROM deleted,УÑпеваемоÑть
201 WHERE
202 /* %JoinFKPK(УÑпеваемоÑть,deleted," = "," AND") */
203 УÑпеваемоÑть.Ðазвание_предмета = deleted.Ðазвание_предмета
204 )
205 BEGIN
206 SELECT @errno = 30001,
207 @errmsg = 'Cannot delete Предмет because УÑпеваемоÑть exists.'
208 GOTO ERROR
209 END
210
211
212 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
213 RETURN
214ERROR:
215 raiserror @errno @errmsg
216 rollback transaction
217END
218go
219
220CREATE TRIGGER tU_Предмет ON Предмет FOR UPDATE AS
221/* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
222/* UPDATE trigger on Предмет */
223BEGIN
224 DECLARE @NUMROWS int,
225 @nullcnt int,
226 @validcnt int,
227 @insÐазвание_предмета char(18),
228 @errno int,
229 @errmsg varchar(255)
230
231 SELECT @NUMROWS = @@rowcount
232 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
233 /* Предмет R/5 УÑпеваемоÑть on parent update no action */
234 /* ERWIN_RELATION:CHECKSUM="00012ae0", PARENT_OWNER="", PARENT_TABLE="Предмет"
235 CHILD_OWNER="", CHILD_TABLE="УÑпеваемоÑть"
236 P2C_VERB_PHRASE="R/5", C2P_VERB_PHRASE="R/5",
237 FK_CONSTRAINT="R_5", FK_COLUMNS="Ðазвание_предмета" */
238 IF
239 /* %ParentPK(" OR",UPDATE) */
240 UPDATE(Ðазвание_предмета)
241 BEGIN
242 IF EXISTS (
243 SELECT * FROM deleted,УÑпеваемоÑть
244 WHERE
245 /* %JoinFKPK(УÑпеваемоÑть,deleted," = "," AND") */
246 УÑпеваемоÑть.Ðазвание_предмета = deleted.Ðазвание_предмета
247 )
248 BEGIN
249 SELECT @errno = 30005,
250 @errmsg = 'Cannot update Предмет because УÑпеваемоÑть exists.'
251 GOTO ERROR
252 END
253 END
254
255
256 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
257 RETURN
258ERROR:
259 raiserror @errno @errmsg
260 rollback transaction
261END
262go
263
264
265CREATE TRIGGER tD_СпециальноÑть ON СпециальноÑть FOR DELETE AS
266/* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
267/* DELETE trigger on СпециальноÑть */
268BEGIN
269 DECLARE @errno int,
270 @errmsg varchar(255)
271 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
272 /* СпециальноÑть R/4 Студенты on parent delete no action */
273 /* ERWIN_RELATION:CHECKSUM="000111c3", PARENT_OWNER="", PARENT_TABLE="СпециальноÑть"
274 CHILD_OWNER="", CHILD_TABLE="Студенты"
275 P2C_VERB_PHRASE="R/4", C2P_VERB_PHRASE="R/4",
276 FK_CONSTRAINT="R_4", FK_COLUMNS="СпециальноÑть" */
277 IF EXISTS (
278 SELECT * FROM deleted,Студенты
279 WHERE
280 /* %JoinFKPK(Студенты,deleted," = "," AND") */
281 Студенты.СпециальноÑть = deleted.СпециальноÑть
282 )
283 BEGIN
284 SELECT @errno = 30001,
285 @errmsg = 'Cannot delete СпециальноÑть because Студенты exists.'
286 GOTO ERROR
287 END
288
289
290 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
291 RETURN
292ERROR:
293 raiserror @errno @errmsg
294 rollback transaction
295END
296go
297
298CREATE TRIGGER tU_СпециальноÑть ON СпециальноÑть FOR UPDATE AS
299/* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
300/* UPDATE trigger on СпециальноÑть */
301BEGIN
302 DECLARE @NUMROWS int,
303 @nullcnt int,
304 @validcnt int,
305 @insСпециальноÑть char varying(20),
306 @errno int,
307 @errmsg varchar(255)
308
309 SELECT @NUMROWS = @@rowcount
310 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
311 /* СпециальноÑть R/4 Студенты on parent update no action */
312 /* ERWIN_RELATION:CHECKSUM="00012722", PARENT_OWNER="", PARENT_TABLE="СпециальноÑть"
313 CHILD_OWNER="", CHILD_TABLE="Студенты"
314 P2C_VERB_PHRASE="R/4", C2P_VERB_PHRASE="R/4",
315 FK_CONSTRAINT="R_4", FK_COLUMNS="СпециальноÑть" */
316 IF
317 /* %ParentPK(" OR",UPDATE) */
318 UPDATE(СпециальноÑть)
319 BEGIN
320 IF EXISTS (
321 SELECT * FROM deleted,Студенты
322 WHERE
323 /* %JoinFKPK(Студенты,deleted," = "," AND") */
324 Студенты.СпециальноÑть = deleted.СпециальноÑть
325 )
326 BEGIN
327 SELECT @errno = 30005,
328 @errmsg = 'Cannot update СпециальноÑть because Студенты exists.'
329 GOTO ERROR
330 END
331 END
332
333
334 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
335 RETURN
336ERROR:
337 raiserror @errno @errmsg
338 rollback transaction
339END
340go
341
342
343CREATE TRIGGER tD_Студенты ON Студенты FOR DELETE AS
344/* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
345/* DELETE trigger on Студенты */
346BEGIN
347 DECLARE @errno int,
348 @errmsg varchar(255)
349 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
350 /* Студенты R/7 УÑпеваемоÑть on parent delete no action */
351 /* ERWIN_RELATION:CHECKSUM="0003a651", PARENT_OWNER="", PARENT_TABLE="Студенты"
352 CHILD_OWNER="", CHILD_TABLE="УÑпеваемоÑть"
353 P2C_VERB_PHRASE="R/7", C2P_VERB_PHRASE="R/7",
354 FK_CONSTRAINT="R_7", FK_COLUMNS="Группа""СпециальноÑть""Ðомер_Зачетки" */
355 IF EXISTS (
356 SELECT * FROM deleted,УÑпеваемоÑть
357 WHERE
358 /* %JoinFKPK(УÑпеваемоÑть,deleted," = "," AND") */
359 УÑпеваемоÑть.Ðомер_Зачетки = deleted.Ðомер_Зачетки AND
360 УÑпеваемоÑть.Группа = deleted.Группа AND
361 УÑпеваемоÑть.СпециальноÑть = deleted.СпециальноÑть
362 )
363 BEGIN
364 SELECT @errno = 30001,
365 @errmsg = 'Cannot delete Студенты because УÑпеваемоÑть exists.'
366 GOTO ERROR
367 END
368
369 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
370 /* Группа R/3 Студенты on child delete no action */
371 /* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Группа"
372 CHILD_OWNER="", CHILD_TABLE="Студенты"
373 P2C_VERB_PHRASE="R/3", C2P_VERB_PHRASE="R/3",
374 FK_CONSTRAINT="R_3", FK_COLUMNS="Группа" */
375 IF EXISTS (SELECT * FROM deleted,Группа
376 WHERE
377 /* %JoinFKPK(deleted,Группа," = "," AND") */
378 deleted.Группа = Группа.Группа AND
379 NOT EXISTS (
380 SELECT * FROM Студенты
381 WHERE
382 /* %JoinFKPK(Студенты,Группа," = "," AND") */
383 Студенты.Группа = Группа.Группа
384 )
385 )
386 BEGIN
387 SELECT @errno = 30010,
388 @errmsg = 'Cannot delete last Студенты because Группа exists.'
389 GOTO ERROR
390 END
391
392 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
393 /* СпециальноÑть R/4 Студенты on child delete no action */
394 /* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="СпециальноÑть"
395 CHILD_OWNER="", CHILD_TABLE="Студенты"
396 P2C_VERB_PHRASE="R/4", C2P_VERB_PHRASE="R/4",
397 FK_CONSTRAINT="R_4", FK_COLUMNS="СпециальноÑть" */
398 IF EXISTS (SELECT * FROM deleted,СпециальноÑть
399 WHERE
400 /* %JoinFKPK(deleted,СпециальноÑть," = "," AND") */
401 deleted.СпециальноÑть = СпециальноÑть.СпециальноÑть AND
402 NOT EXISTS (
403 SELECT * FROM Студенты
404 WHERE
405 /* %JoinFKPK(Студенты,СпециальноÑть," = "," AND") */
406 Студенты.СпециальноÑть = СпециальноÑть.СпециальноÑть
407 )
408 )
409 BEGIN
410 SELECT @errno = 30010,
411 @errmsg = 'Cannot delete last Студенты because СпециальноÑть exists.'
412 GOTO ERROR
413 END
414
415
416 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
417 RETURN
418ERROR:
419 raiserror @errno @errmsg
420 rollback transaction
421END
422go
423
424CREATE TRIGGER tU_Студенты ON Студенты FOR UPDATE AS
425/* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
426/* UPDATE trigger on Студенты */
427BEGIN
428 DECLARE @NUMROWS int,
429 @nullcnt int,
430 @validcnt int,
431 @insÐомер_Зачетки integer,
432 @insГруппа char varying(20),
433 @insСпециальноÑть char varying(20),
434 @errno int,
435 @errmsg varchar(255)
436
437 SELECT @NUMROWS = @@rowcount
438 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
439 /* Студенты R/7 УÑпеваемоÑть on parent update no action */
440 /* ERWIN_RELATION:CHECKSUM="00042c01", PARENT_OWNER="", PARENT_TABLE="Студенты"
441 CHILD_OWNER="", CHILD_TABLE="УÑпеваемоÑть"
442 P2C_VERB_PHRASE="R/7", C2P_VERB_PHRASE="R/7",
443 FK_CONSTRAINT="R_7", FK_COLUMNS="Группа""СпециальноÑть""Ðомер_Зачетки" */
444 IF
445 /* %ParentPK(" OR",UPDATE) */
446 UPDATE(Ðомер_Зачетки) OR
447 UPDATE(Группа) OR
448 UPDATE(СпециальноÑть)
449 BEGIN
450 IF EXISTS (
451 SELECT * FROM deleted,УÑпеваемоÑть
452 WHERE
453 /* %JoinFKPK(УÑпеваемоÑть,deleted," = "," AND") */
454 УÑпеваемоÑть.Ðомер_Зачетки = deleted.Ðомер_Зачетки AND
455 УÑпеваемоÑть.Группа = deleted.Группа AND
456 УÑпеваемоÑть.СпециальноÑть = deleted.СпециальноÑть
457 )
458 BEGIN
459 SELECT @errno = 30005,
460 @errmsg = 'Cannot update Студенты because УÑпеваемоÑть exists.'
461 GOTO ERROR
462 END
463 END
464
465 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
466 /* Группа R/3 Студенты on child update no action */
467 /* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Группа"
468 CHILD_OWNER="", CHILD_TABLE="Студенты"
469 P2C_VERB_PHRASE="R/3", C2P_VERB_PHRASE="R/3",
470 FK_CONSTRAINT="R_3", FK_COLUMNS="Группа" */
471 IF
472 /* %ChildFK(" OR",UPDATE) */
473 UPDATE(Группа)
474 BEGIN
475 SELECT @nullcnt = 0
476 SELECT @validcnt = count(*)
477 FROM inserted,Группа
478 WHERE
479 /* %JoinFKPK(inserted,Группа) */
480 inserted.Группа = Группа.Группа
481 /* %NotnullFK(inserted," IS NULL","select @nullcnt = count(*) from inserted where"," AND") */
482
483 IF @validcnt + @nullcnt != @NUMROWS
484 BEGIN
485 SELECT @errno = 30007,
486 @errmsg = 'Cannot update Студенты because Группа does not exist.'
487 GOTO ERROR
488 END
489 END
490
491 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
492 /* СпециальноÑть R/4 Студенты on child update no action */
493 /* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="СпециальноÑть"
494 CHILD_OWNER="", CHILD_TABLE="Студенты"
495 P2C_VERB_PHRASE="R/4", C2P_VERB_PHRASE="R/4",
496 FK_CONSTRAINT="R_4", FK_COLUMNS="СпециальноÑть" */
497 IF
498 /* %ChildFK(" OR",UPDATE) */
499 UPDATE(СпециальноÑть)
500 BEGIN
501 SELECT @nullcnt = 0
502 SELECT @validcnt = count(*)
503 FROM inserted,СпециальноÑть
504 WHERE
505 /* %JoinFKPK(inserted,СпециальноÑть) */
506 inserted.СпециальноÑть = СпециальноÑть.СпециальноÑть
507 /* %NotnullFK(inserted," IS NULL","select @nullcnt = count(*) from inserted where"," AND") */
508
509 IF @validcnt + @nullcnt != @NUMROWS
510 BEGIN
511 SELECT @errno = 30007,
512 @errmsg = 'Cannot update Студенты because СпециальноÑть does not exist.'
513 GOTO ERROR
514 END
515 END
516
517
518 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
519 RETURN
520ERROR:
521 raiserror @errno @errmsg
522 rollback transaction
523END
524go
525
526
527CREATE TRIGGER tD_УÑпеваемоÑть ON УÑпеваемоÑть FOR DELETE AS
528/* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
529/* DELETE trigger on УÑпеваемоÑть */
530BEGIN
531 DECLARE @errno int,
532 @errmsg varchar(255)
533 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
534 /* Предмет R/5 УÑпеваемоÑть on child delete no action */
535 /* ERWIN_RELATION:CHECKSUM="0002f763", PARENT_OWNER="", PARENT_TABLE="Предмет"
536 CHILD_OWNER="", CHILD_TABLE="УÑпеваемоÑть"
537 P2C_VERB_PHRASE="R/5", C2P_VERB_PHRASE="R/5",
538 FK_CONSTRAINT="R_5", FK_COLUMNS="Ðазвание_предмета" */
539 IF EXISTS (SELECT * FROM deleted,Предмет
540 WHERE
541 /* %JoinFKPK(deleted,Предмет," = "," AND") */
542 deleted.Ðазвание_предмета = Предмет.Ðазвание_предмета AND
543 NOT EXISTS (
544 SELECT * FROM УÑпеваемоÑть
545 WHERE
546 /* %JoinFKPK(УÑпеваемоÑть,Предмет," = "," AND") */
547 УÑпеваемоÑть.Ðазвание_предмета = Предмет.Ðазвание_предмета
548 )
549 )
550 BEGIN
551 SELECT @errno = 30010,
552 @errmsg = 'Cannot delete last УÑпеваемоÑть because Предмет exists.'
553 GOTO ERROR
554 END
555
556 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
557 /* Студенты R/7 УÑпеваемоÑть on child delete no action */
558 /* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Студенты"
559 CHILD_OWNER="", CHILD_TABLE="УÑпеваемоÑть"
560 P2C_VERB_PHRASE="R/7", C2P_VERB_PHRASE="R/7",
561 FK_CONSTRAINT="R_7", FK_COLUMNS="Группа""Ðомер_Зачетки""СпециальноÑть" */
562 IF EXISTS (SELECT * FROM deleted,Студенты
563 WHERE
564 /* %JoinFKPK(deleted,Студенты," = "," AND") */
565 deleted.Ðомер_Зачетки = Студенты.Ðомер_Зачетки AND
566 deleted.Группа = Студенты.Группа AND
567 deleted.СпециальноÑть = Студенты.СпециальноÑть AND
568 NOT EXISTS (
569 SELECT * FROM УÑпеваемоÑть
570 WHERE
571 /* %JoinFKPK(УÑпеваемоÑть,Студенты," = "," AND") */
572 УÑпеваемоÑть.Ðомер_Зачетки = Студенты.Ðомер_Зачетки AND
573 УÑпеваемоÑть.Группа = Студенты.Группа AND
574 УÑпеваемоÑть.СпециальноÑть = Студенты.СпециальноÑть
575 )
576 )
577 BEGIN
578 SELECT @errno = 30010,
579 @errmsg = 'Cannot delete last УÑпеваемоÑть because Студенты exists.'
580 GOTO ERROR
581 END
582
583
584 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
585 RETURN
586ERROR:
587 raiserror @errno @errmsg
588 rollback transaction
589END
590go
591
592CREATE TRIGGER tU_УÑпеваемоÑть ON УÑпеваемоÑть FOR UPDATE AS
593/* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
594/* UPDATE trigger on УÑпеваемоÑть */
595BEGIN
596 DECLARE @NUMROWS int,
597 @nullcnt int,
598 @validcnt int,
599 @insÐазвание_предмета char(18),
600 @insÐомер_Зачетки integer,
601 @insГруппа character varying(20),
602 @insСпециальноÑть character varying(20),
603 @errno int,
604 @errmsg varchar(255)
605
606 SELECT @NUMROWS = @@rowcount
607 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
608 /* Предмет R/5 УÑпеваемоÑть on child update no action */
609 /* ERWIN_RELATION:CHECKSUM="00030e6b", PARENT_OWNER="", PARENT_TABLE="Предмет"
610 CHILD_OWNER="", CHILD_TABLE="УÑпеваемоÑть"
611 P2C_VERB_PHRASE="R/5", C2P_VERB_PHRASE="R/5",
612 FK_CONSTRAINT="R_5", FK_COLUMNS="Ðазвание_предмета" */
613 IF
614 /* %ChildFK(" OR",UPDATE) */
615 UPDATE(Ðазвание_предмета)
616 BEGIN
617 SELECT @nullcnt = 0
618 SELECT @validcnt = count(*)
619 FROM inserted,Предмет
620 WHERE
621 /* %JoinFKPK(inserted,Предмет) */
622 inserted.Ðазвание_предмета = Предмет.Ðазвание_предмета
623 /* %NotnullFK(inserted," IS NULL","select @nullcnt = count(*) from inserted where"," AND") */
624
625 IF @validcnt + @nullcnt != @NUMROWS
626 BEGIN
627 SELECT @errno = 30007,
628 @errmsg = 'Cannot update УÑпеваемоÑть because Предмет does not exist.'
629 GOTO ERROR
630 END
631 END
632
633 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
634 /* Студенты R/7 УÑпеваемоÑть on child update no action */
635 /* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Студенты"
636 CHILD_OWNER="", CHILD_TABLE="УÑпеваемоÑть"
637 P2C_VERB_PHRASE="R/7", C2P_VERB_PHRASE="R/7",
638 FK_CONSTRAINT="R_7", FK_COLUMNS="Группа""Ðомер_Зачетки""СпециальноÑть" */
639 IF
640 /* %ChildFK(" OR",UPDATE) */
641 UPDATE(Ðомер_Зачетки) OR
642 UPDATE(Группа) OR
643 UPDATE(СпециальноÑть)
644 BEGIN
645 SELECT @nullcnt = 0
646 SELECT @validcnt = count(*)
647 FROM inserted,Студенты
648 WHERE
649 /* %JoinFKPK(inserted,Студенты) */
650 inserted.Ðомер_Зачетки = Студенты.Ðомер_Зачетки and
651 inserted.Группа = Студенты.Группа and
652 inserted.СпециальноÑть = Студенты.СпециальноÑть
653 /* %NotnullFK(inserted," IS NULL","select @nullcnt = count(*) from inserted where"," AND") */
654
655 IF @validcnt + @nullcnt != @NUMROWS
656 BEGIN
657 SELECT @errno = 30007,
658 @errmsg = 'Cannot update УÑпеваемоÑть because Студенты does not exist.'
659 GOTO ERROR
660 END
661 END
662
663
664 /* ERwin Builtin 4 ноÑÐ±Ñ€Ñ 2010 г. 17:05:53 */
665 RETURN
666ERROR:
667 raiserror @errno @errmsg
668 rollback transaction
669END
670go