Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 1.22 KB | None | 0 0
  1. IF EXISTS(SELECT *
  2.           FROM sys.objects
  3.           WHERE [name] = 't_conference_conference_day_connection' AND TYPE = 'TR')
  4.   DROP TRIGGER [dbo].[t_conference_conference_day_connection]
  5. GO
  6.  
  7. CREATE TRIGGER [dbo].[t_conference_conference_day_connection]
  8.   ON [dbo].[conference_days]
  9.   AFTER INSERT, UPDATE, DELETE
  10. AS
  11.   BEGIN
  12.     IF EXISTS(SELECT *
  13.               FROM inserted AS i LEFT OUTER JOIN conferences AS c ON i.conference_id = c.id
  14.               WHERE c.start_time = NULL)
  15.       THROW 50000, 'Conference id not in database', 1
  16.  
  17.     IF EXISTS(SELECT *
  18.               FROM inserted AS i INNER JOIN conferences AS c
  19.                   ON c.id = i.conference_id AND i.[day] NOT BETWEEN c.start_time AND c.end_time)
  20.       THROW 50000, 'Conference day not in conference time', 1
  21.     -- TODO
  22.     -- nie działa. cholera wie czemu, przerobiłem to, dalej nie działa, nie mam pomysłu co może kolidować (odpalaj z generatorem).
  23.      IF EXISTS(SELECT *
  24.                FROM inserted AS i INNER JOIN conference_days AS cd
  25.                ON cd.[day] = i.[day]
  26.                AND cd.[conference_id] = i.[conference_id]
  27.                where cd.id <> i.id)
  28.        THROW 50000, 'There is already a conference day in this date', 1
  29.   END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement