Ich bin sehr neu zu Triggern und ich kann nicht scheinen, meinen Kopf um sie zu wickeln. Nehmen sie an, ich habe zwei Tabellen hier:Erstellen Sie Trigger, die Daten in SQL Server vergleicht
CREATE TABLE Project
(
id INT NOT NULL IDENTITY(1, 1),
startDate DATETIME,
endDate DATETIME
);
CREATE TABLE Work
(
date DATETIME,
projectId INT
);
ich einige Daten einfügen:
INSERT INTO Project VALUES ('2017-04-18', '2017-05-01'); /*id = 1*/
INSERT INTO Work VALUES ('2017-04-17', 1);
Unter der Annahme, es gibt nur ein Projekt mit id = 1
, soll dieser gut gehen. Es macht jedoch wenig Sinn, dass meine Arbeit am Tag vor dem Projektstart beginnt (nicht in diesem Fall). Wie würde ich einen Trigger erstellen, der im Grunde sagt date cannot be < startDate OR > endDate
?
Sie sollen Handle Geschäftsregeln auf der Anwendungsebene, nicht auf der Datenbankebene. –
@WEI_DBA Ich weiß. Das ist überhaupt keine Arbeit, und ich würde das nie in einer realen Anwendung machen. – MortenMoulder
Dann ... Verwenden Sie einen "anstelle von Insert Trigger" in der Tabelle "Arbeit". –