두 개의 not null
열 Created
및 Updated
이 포함 된 테이블이 있습니다. null이 아닌 열에 삽입 후 트리거
ALTER TRIGGER [dbo].[tr_category_inserted] ON [dbo].[Category]
AFTER INSERT
AS
BEGIN
UPDATE Category
SET Created = GETDATE(), Updated = GETDATE()
FROM inserted
WHERE Category.ID = inserted.ID;
END
및
ALTER TRIGGER [dbo].[tr_category_updated] ON [dbo].[Category]
AFTER UPDATE
AS
BEGIN
UPDATE Category
SET Updated = GETDATE()
FROM inserted
inner join [dbo].[Category] c on c.ID = inserted.ID
END
해당 쓴하지만 새 행을 삽입하고 있다면 오류를 얻을
열에 NULL 값을 삽입 할 수 없습니다 '만든 ', 표 '분류 '; 열이 널을 허용하지 않습니다. INSERT가 실패합니다.
삽입 명령을
INSERT INTO [Category]([Name], [ShowInMenu], [Deleted])
VALUES ('category1', 0, 0)
어떻게 이러한 열을 설정하지 않고 같은 트리거를 쓸 수는 널 (null) 허용?
'insert'에서'date'를 자동으로 업데이트하려면'triggers' 대신'default' 제약 조건을 사용하는 것이 좋습니다 – DON
트리거는 삽입 후에 만 작동하고 열 값을 삽입하지 않을 수도 있으므로 오류가 발생합니다 삽입시 '생성됨'및 '업데이트 됨'. – TechDo
트리거의 이름이 이미 밝혀지기 때문에 트리거가 시작된 후 ** 삽입이 발생했습니다. 그러나 'NOT NULL'열에 대해 INSERT에 ** 값 **을 제공해야합니다. 그래서 당신은 INSERT 트리거를 써서 그 컬럼의 초기 값을 설정해야한다. 간단히 말해 컬럼에 DEFAULT (GETDATE()) 제약 조건을 정의하면 자동으로 INSERT '.... –