2012-05-07 7 views
1

자동화 된 테스트를 실행하기위한 테스트 환경을 설정하고 있습니다.시간 경과에 따른 SQL 데이터베이스 변경 내보내기

우리는 깨끗한 환경을 원했기 때문에 코드를 체크인 할 때마다 데이터베이스를 날려 버리고 처음부터 새 코드를 작성한 다음 .sql 스크립트의 데이터로 채 웁니다.

나는 게으르다. 누군가가 데이터베이스의 내용을 변경하는 UI를 사용하여 변경 한 다음, 변경 사항을 내보낼 수있는 .sql 스크립트로 내보낼 수있는 방법을 원한다. db가 작성 될 때 기본 스크립트에 추가하십시오.

db에 대한 변경 사항을 감지하여 SQL 스크립트로 내보내기 시작할 수있는 방법이 있는지 알고 있습니까?

나는 이것에 대한 기본 검색을 수행했으며, 존재한다면 적절한 용어를 검색해서는 안됩니다. 감사합니다 :)

+1

이상적이거나 완벽하지 않습니다.'select * from sys.objects where modify_date> = 'YourLastExtractDate'' 그것은 바람직하지 않습니다. 왜냐하면 삭제가 반영되지 않고 모든 객체가 sys.objects에 있다고 생각하지 않기 때문입니다. (트리거, pacakge 시체 등 ... 확실하지 않음) – xQbert

+0

@xQbert 재미있는 소리, 나는 분명히 그걸 가지고 놀아야 할 것이다. – mrfreester

+1

Theres는 SQL Server의 스크립트 버튼으로, 클릭하면 gui에서 수행 한 작업을 SQL에서 처리합니다. 추신 : 당신이 잘 모르겠다는 것을 알고 있습니까? –

답변

2

당신이 요청한 것을 할 수있는 타사 도구가 있습니다. 구체적으로 RedGate SQL Compare http://www.red-gate.com/products/sql-development/sql-compare/ (어떤 식 으로든 RedGate와 관련이 없습니다.)

그렇지 않으면 모든 단일 테이블에 대해 INSERT/ON DELETE/ON UPDATE CASCADE 트리거를 만드는 것을 제외하고는 정말 깔끔한 방법을 사용하지 않습니다.

편집 : 트리거 및 저장된 procs를 완전히 잊어 버렸습니다. 그들은 CASCADE 트리거에 의해 커버되지 않을 것입니다.

관련 문제