업데이트 할 때 Column 값을 확인하고 싶습니다. 일치하는 항목이 다른 테이블에 삽입되는 경우. 내 테이블 : 조건이있는 특정 열의 트리거
내 트리거 :
CREATE TRIGGER tr_test
ON test1
FOR UPDATE
AS
SET nocount ON
IF (Update(sname))
DECLARE @Name NVARCHAR
DECLARE @id INT
SET @[email protected]@IDENTITY
SET @Name=(SELECT sname
FROM test1
WHERE id = @id)
IF(@Name = 'Paras')
BEGIN
INSERT INTO test2
(loginfo)
VALUES ('success')
END
그리고 내 업데이트 쿼리는 다음과 같습니다
update Test1 set Sname='Paras' where ID=1
나는 일이되는이 업데이트 쿼리 아무것도 실행하지
.Test2
테이블이 비어 있습니다. 문제가
@@IDENTITY
인 것 같지만 확실하지 않습니다. 감사합니다.
CREATE TRIGGER tr_test
ON test1
FOR UPDATE
AS
SET nocount ON
IF (Update(sname))
DECLARE @Name NVARCHAR
DECLARE @id INT
SET @id=(select id from inserted)
SET @Name=(SELECT sname
FROM inserted
WHERE id = @id)
IF(@Name = 'Paras')
BEGIN
INSERT INTO test2
(loginfo)
VALUES ('success')
END
을하지만, 위의 실패 업데이트가 UPDATE가 많은 행과 일치하는 경우, 사용이 존재하는 많은 행을 업데이트 할 수 있습니다,이 작업을 수행하는 것이 좋습니다 :
@@ IDENTITY : 시스템 기능이 ret입니다. 마지막으로 삽입 된 ID 값을 반환합니다 .http : //msdn.microsoft.com/en-us/library/ms187342.aspx –
오, 그 실수입니다. 그래서 어떻게 업데이트 된 컬럼'ID'를 찾았나요? –
또한 SQL Server의 트리거는 문 ** 당 한 번 ** (행당 한 번) 호출되지 않습니다. 한 번에 50 개의 행을 삽입 한 INSERT 문을 호출 할 수 있습니다. 당신은 그 사실을 다룰 필요가 있습니다. 당신의 방아쇠가 단 하나의 줄만 취급한다고 가정하지 마십시오! –