2017-01-03 2 views
1

test1test2 데이터베이스가 두 개 있습니다. 데이터베이스에 특정 값을 업데이트하는 시스템이 있다고 가정 해 봅시다. test1.여러 데이터베이스에서 SQL Server 2014 트리거

이제 test2 데이터베이스에있는 트리거를 만들어 데이터베이스 test1이 값을 업데이트하는지 확인하고 싶습니다.

업데이트되면 데이터베이스 test2에 글을 쓰고 싶습니다.

나는 다음과 같은 트리거를 시도 :

ALTER TRIGGER [dbo].[testtrigger] 
ON [test2].[dbo].[naam2] 
AFTER UPDATE ON [test1].[dbo].[naam] 

는 그러나, 나는에 구문 오류 : 'ON'

근처의 구문이 잘못되었습니다. ',', AS, NOT_FOR 또는 WITH을 사용합니다.

이제 왜 이런 일이 발생하는지 궁금합니다. 이 작업을 수행하는 방법을 검색했으며 모두 ON을 참조했습니다.

내가 노력하고 더 명확 그것이되지 않을 경우 확인하기 위해 이미지를 추가합니다 마이크로 소프트 SQL 서버 2014

을 사용하고 있습니다. Image of the 2 databases

+1

당신은 할 수 없습니다 - 트리거는 항상 액션이 일어나는 곳이어야합니다 - 당신은 다른 테이블을 "관찰"하는 트리거를 가질 수 없습니다 - 트리거가 테이블에서 삽입, 업데이트 또는 삭제가 발생하면 트리거됩니다 에 정의되어 있습니다. –

답변

1

트리거는

귀하의 구문은 wrong..Below 당신이

그것을 할 수있는 방법의 개요입니다 .. 데이터베이스 TEST1 변경의 테이블은, iwant 응답하는 데이터베이스 TEST2에 있습니다
create trigger triggername on test1.dbo.table1 
after update 
as 

begin 
insert into test2.dbo.table2 
select * from deleted 

end 
+0

내가 무슨 짓을 :.... ** 사용법 [TEST1은] [DBO] [나암]는 는 가 [TEST1] ON 트리거를 만들 GO [DBO] [나암] 은 로 갱신 이후에 삽입을 시작 [test2]. [dbo]. [naam2] select * 삭제됨 끝 ** 결과는 여전히 ** ON **에서 오류를 제공합니다. ID 또는 Quoted_ID가 필요합니다 – Mitch

+1

트리거 이름을 놓쳤습니다. 또한 구문이 유효하지 않습니다. 데이터베이스 이름 만 사용하십시오. – TheGameiswar

+0

좋습니다. 작동 중입니다. 그러나 데이터베이스 ** test1 **에서 트리거를 만듭니다. 내 목표는 database ** test2 ** 내부에서 트리거를 유지하여 데이터베이스 test1에 트리거가 없도록하는 것입니다. ** test1 ** 데이터베이스에 업데이트가 있는지 ** test2 ** 데이터베이스에서 확인하고 싶습니다. – Mitch