트리거에서 삭제/삽입/업데이트 된 행을 가져 오는 보편적 인 방법이 있습니까? Oracle, SQL Server 및 Postgres에서 작동해야하는 하나의 트리거 (내 응용 프로그램에서 코드 한 개를 만듭니다)를 만들고 싶습니다. 가능한가? 다른 DB에 연결하기 위해 ODBC 드라이버를 사용하고 있습니다.트리거에서 삭제 된 행을 가져 오는 ODBC 범용 방법
SQL Server에서는 작동하지만 Oracle에서는 작동하지 않습니다.
CREATE TRIGGER schema.trg_nameON schema.table_name
FOR DELETE
AS
BEGIN
DECLARE @id BIGINT;
SELECT @id = d.ID
FROM deleted d
DELETE
FROM schema.table_name
WHERE TOP_ID = @id;
END
그리고 덧붙여 말하자면 이것은 하나의 레코드 만 변경되었다고 가정하기 때문에 SQL 서버에서 매우 나쁜 트리거 일 것입니다. 트리거를 작성할 때 만들지 않는 것은 매우 가난한 가정입니다. ANytimeyou는 스칼라 변수에 삽입 또는 삭제 된 값을 설정하는 SQL 서버에서 트리거가 발생하면 트리거가 잘못되어 다시 작성해야합니다. – HLGEM