업데이트를 차단하고 테이블 Service
을 삭제하기 위해 SQL Server 트리거를 만들어야합니다.SQL Server 트리거의 IF 문
이 작업은 State
샘플 데이터가 "완료되었습니다"Service
에만 수행되어야합니다.
State
샘플 데이터가 "활성"인 Service
으로 업데이트하고 삭제할 수 있어야합니다.
이것은 내가 시도한 것으로 else 작업을 수행하는 데 문제가 있습니다 (State
샘플 데이터가 "활성"인 Service
에 대한 업데이트를 허용 함). 내가 제대로 이해 그래서 경우
CREATE TRIGGER [Triggername]
ON dbo.Service
FOR INSERT, UPDATE, DELETE
AS
DECLARE @para varchar(10),
@results varchar(50)
SELECT @para = Status
FROM Service
IF (@para = 'completed')
BEGIN
SET @results = 'An invoiced service cannot be updated or deleted!';
SELECT @results;
END
BEGIN
RAISERROR ('An invoiced service cannot be updated or deleted', 16, 1)
ROLLBACK TRANSACTION
RETURN
END
업데이트 및 삭제를 차단하려면 'INSERT'에 트리거가있는 이유는 무엇입니까? 또한 : 당신이 * 행 *이 업데이트 (또는 삭제)되었음을 알려주는'Deleted'와'Inserted' 의사 테이블을 결코 보지 못했기 때문에 - 이것이 작동하지 않을 것입니다 ...... –
'송장 된 서비스를 업데이트하거나 삭제할 수 없습니다!'라는 값이 표시됩니다. 하지만 if 조건을 검사하는지 여부는 확실하지 않습니다. – Ayyub