특정 삽입 값이있는 경우 테이블을 업데이트하는 테이블에 업데이트 트리거를 만들어야합니다. 이것이 가능한가? 나는 시도한 후 삽입 된 값이 존재하고 트리거를 발생 시키면 트리거는 업데이트를 수행하고 다시 발생합니다. 결국 - 교착 상태. 이것을 안전하게 수행 할 수있는 방법이 있습니까? SQL Server 2008 업데이트 트리거
강령 : 동안이 직접 자신을 트리거에서 데이터베이스의 모든 트리거를 방지 할 수USE [master]
GO
ALTER DATABASE [yourDbName] SET RECURSIVE_TRIGGERS OFF WITH NO_WAIT
GO
:
당신이 할 수있는CREATE TRIGGER dbo.trg_updateaddress on dbo.Customers
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @original_source varchar(50)
SELECT @original_source = address_source FROM deleted
IF EXISTS (SELECT * FROM inserted i
INNER JOIN deleted d
ON i.cust_id = d.cust_id
WHERE i.address_source IS NOT NULL
AND (i.[address] <> d.[address]
OR i.address2 <> d.address2
OR i.city <> d.city
OR i.[state] <> d.[state]
OR i.zip <> d.zip
OR i.country <> d.country
OR i.phone <> d.phone
OR i.cell <> d.cell
OR i.email <> d.email))
BEGIN
UPDATE customers
SET address_changed = GETDATE()
END
ELSE
BEGIN
UPDATE customers
SET address_source = @original_source
END
END
에 당신이 할 수 설정 발사 할 경우, 2로 설정 한 번 한 후, 첫 번째 업데이트 1에서 계산 시작 트리거 코드를 보여 주시겠습니까? –
코드 게시 위 –
트리거가 반복적으로 실행 되길 원합니까? 아니면 불필요한가요? – RBarryYoung