Sql-Server

幫助創建觸發器

  • June 17, 2022

我對在插入後創建觸發器有很多疑問,在進入新航班後檢查它是否是指定飛機的第一次飛行。

你能幫我麼

這應該可以讓您入門,請參見下文。

CREATE TRIGGER trgFlight_Inaugural ON dbo.Flight
   AFTER INSERT
AS
BEGIN

   SET NOCOUNT ON;

   ;WITH CTE_InaguralFlight AS
       (
       SELECT I.registrationNumber
           , I.departureDate
           , A.[description]
       FROM INSERTED AS I
           INNER JOIN dbo.Aircraft AS A ON A.registrationNumber = I.registrationNumber
       WHERE NOT(A.[description] LIKE 'Inaugural flight on%')
       )
   UPDATE CTE_InaguralFlight
   SET [description] = 'Inaugural flight on ' + CONVERT(NVARCHAR(20), departureDate, 120);

END

我唯一擔心的是

$$ Description $$可能包含其他東西?在這種情況下,這將需要更新。但如果可能的話,我認為 Aircraft 表應該有一個專用於 InauguralFlightDate 的欄位,如果這是您要跟踪的內容。

引用自:https://dba.stackexchange.com/questions/313484