2009-11-27 7 views
3

MS SQL Server 2005에서 실행되는 스크립트에서 트리거를 데이터베이스간에 복사 할 수 있습니까?한 데이터베이스에서 다른 데이터베이스로 트리거 복사

프로젝트에서 사용하는 트리거에 대한 테스트 스크립트를 작성해야합니다. 테스트 구조는 테스트 대상 객체 만 포함 된 빈 데이터베이스를 만든 다음 해당 데이터베이스에서 테스트에 필요한 다른 모든 객체를 만드는 스크립트를 실행하고 채우며 필요한 모든 테스트를 실행하고 예상 결과와 비교 한 다음, 그런 다음 테스트중인 객체를 제외한 모든 객체를 삭제합니다.

방아쇠가 여러 테이블에 의존하기 때문에 방아쇠를 제외하고 비어있는 데이터베이스를 만들 수는 없습니다. 내 테스트 스크립트는 현재 필요한 모든 테이블을 만든 후에 CREATE TRIGGER를 실행하지만 테스트 스크립트가 테스트중인 개체를 포함 할 수 없기 때문에 수행하지 않습니다.

제안 된 것은 CREATE TRIGGER를 실행하는 대신 라이브 데이터베이스에서 테스트 데이터베이스로 스크립트의 해당 시점에 트리거를 복사하는 것입니다. 나는 빠른 구글을 가지고 있고 이것을 할 길을 찾지 못했다. 따라서 나의 질문 - 이것이 가능한가? 그렇다면 어떻게 할 수 있는가?

답변

2

당신은 sp_helptext (triggername)

와 트리거의 텍스트를 읽을 수 또는 당신은 변수에 텍스트를 선택하고 그것을 실행할 수 있습니다

declare @sql varchar(8000) 


select @sql = object_definition(object_id) 
from sys.triggers 
where name = 'testtrigger' 

EXEC @sql 
+0

감사를, 그 화려한입니다. 몇 가지 USE와 EXEC (@sql)로 이것이 내가 원하는 것을 정확하게 수행하고있다. – Rawling

+0

당신은 환영합니다 :) – edosoft

관련 문제