해당 테이블에 몇 개의 새 열을 만들기 전에 입력 할 수있는 테이블이 있습니다. 테이블은 History
테이블의 동일한 열을 사용하여 만든 로그 기록 테이블에 데이터를 삽입하는 UPDATE, DELETE 및 INSERT에서 트리거를 호출합니다.SQL Server 트리거가 데이터를 삽입하거나 수정하지 못하도록합니다.
이제 테이블에 데이터를 삽입 할 수 없습니다. 편집 옵션에서 행을 편집하면 .....이 오류가 표시됩니다.
No row was Updated.
The data in row 1 was not committed
Error Sources .net SQLClient Data Provider.
Error Message: Incorrect syntax near the keyword where
Correct the error and retry or press esc to cancel
그러나 트리거를 사용하지 않으면 모든 것이 정상적으로 작동합니다.
트리거
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [magic ].[magic ]
ON magic
AFTER UPDATE, INSERT, DELETE
AS
DECLARE @operation CHAR(20)
SET @operation= 'N'
IF EXISTS(SELECT * FROM inserted) AND EXISTS(SELECT * FROM deleted)
BEGIN
SET @operation = 'Updated'
INSERT INTO magic.magic_HISTORY
SELECT *, @operation
FROM INSERTED
END
IF EXISTS(SELECT * FROM inserted) AND NOT EXISTS(SELECT * FROM deleted)
BEGIN
SET @operation = 'Inserted'
INSERT INTO magic.magic_HISTORY
SELECT *, @operation
FROM INSERTED
END
IF NOT EXISTS(SELECT * FROM inserted) AND EXISTS(SELECT * FROM deleted)
BEGIN
SET @operation = 'Deleted'
INSERT INTO magic.magic_HISTORY
SELECT *, @operation
FROM deleted
END
magic_history 테이블에 트리거가 있습니까? 키워드 WHERE가 게시 한 코드에 나타나지 않습니다. –
WHERE 절 구문 오류가 원래 쿼리에있을 수 있습니다. – Kaf
당신은 몇 가지 새로운 열을 추가했다는 것을 언급하고, select *로이 테이블에 삽입 할 때이 열을 magic_History에 추가했음을 언급 함. Inserted –