3

SQL Server 2000 인스턴스는 클라이언트와 비슷한 여러 개의 데이터베이스를 호스팅합니다. 시간을내어 업데이트하면 Red Gate SQL Compare를 사용하여 개발 데이터베이스와 모든 클라이언트 데이터베이스의 현재 상태 DB 복사본간에 마이그레이션 스크립트를 생성합니다.SQL Server, 여러 데이터베이스에서 일괄 T-SQL 스크립트 실행

SQL Compare는 트랜잭션 인 스크립트를 생성합니다. 한 단계가 실패하면 스크립트는 모든 것을 롤백합니다. 그러나 현재 우리 시스템에서는 스크립트를 일괄 분리 기호 (GO 문)로 분할 한 다음 각 명령을 개별적으로 실행하여 모든 트랜잭션 작업을 망칠 수있는 방법을 사용합니다. GO GO30 프로그래밍 방식으로 데이터베이스를 쿼리 할 때 문이 지원되지 않음

프로그래밍 방식으로 또는 해당 데이터베이스 (예 : 250 DB)에서 해당 스크립트를 어떻게 실행할 수 있는지 알고 싶습니다. 도구에서 수동으로? 쿼리 분석기에서 각 데이터베이스를 선택하고 을 실행해야합니다. 실행중인은 DB 수가 매우 깁니다.

답변

2

외부 sqlcmd command line tool을 사용합니다. 나는 내가 일하는 서버에서 같은 상황에 처해있다.

* .sql 파일의 스크립트와 두 번째 파일의 데이터베이스 목록이 있습니다. 나는 모든 데이터베이스를 반복하고 sqlcmd 명령을 사용하여 스크립트를 실행하는 작은 * .bat 스크립트가 있습니다. 자세한 내용은에서

I는 다음과 같이 있습니다 : 나는 모든 스크립트

  • runIt을 저장할 위치를 내 스크립트를
  • SQL/디렉토리를 배포하려는 모든 데이터베이스와

    • DB.ini 파일을. 박쥐 - 스크립트 스크립트
    • 을 배포

    는 명령 줄은 더없는 다음과 같습니다

    SQL Server 2000에서 018,413,210

    그것은 osql utility

    UPDATE했다

    레드 게이트는 이제 기본적으로 정확하게 당신이 원하는 것을 SQL Multi Script라는 도구를 가지고있다. 필자는 SQL 2000에서 2008 R2까지 지원하고 성능을 향상시키는 여러 데이터베이스에서 병렬로 쿼리를 실행합니다.

  • +0

    SQL 서버 2008가 보낸 링크되어,이 명령 줄 도구는 SQL Server 2000에서 사용할 수 있습니까? – MaxiWheat

    +1

    내 대답이 업데이트되었습니다. SQL Server 2000에서 도구는 osql이라고했습니다. –

    +1

    * .bat 파일의 모양은 무엇입니까 –

    0

    잘 될지 모르지만 GO 문을 세미콜론으로 바꾸고 전체 문을 한 번에 실행 해보십시오.

    5

    당신은 SQL 2005 또는 2008 SSMS를 사용할 수 있다면, 내가 권 해드립니다 무료 SSMS Tool pack

    0

    내가 기억하는 경우, 당신은 또한에서 시작된 상태로 모든 변경 비교 SQL에서 스크립트를 만들 수 있습니다 둘 다 생성 할 수 있습니다.

    내가 이런 종류의 배포를 수행했을 때 (잠시 기다려 봤습니다.) 먼저 스크립트가 찌르 게 작동하는지 확인하기 전에 찌르기와 똑같이 만들어진 준비 서버에로드했습니다.실패한 것이 있으면 (대개 스크립트가 실행 된 순서로 인해 예를 들어 존재하지 않는 테이블에 외래 키를 설정할 수 없음). 나는 또한 알 테이블 변경을 먼저 스크립팅 한 다음 모든 뷰를 변경하고 모든 UDF 변경 사항을 저장 한 다음 모든 저장된 proc 변경 사항을 스크립팅했습니다. 이것은 아직 존재하지 않는 객체로 인한 실패를 크게 줄였습니다.하지만 여전히 조정할 필요가있는 객체가있었습니다.

    1

    칠년 나중에 내가 그것을 만든 프로젝트 게시 너무 여러 번 있도록 동일한 문제가 있었다 :

    TAKODEPLOY을 여기

    일부 기능은 다음과 같습니다

    • 모든 가져 오기 데이터베이스를 단일 인스턴스에서 제거하고 이름 필터를 적용합니다. 또는 단 한 번의 직접 연결.
    • 데이터베이스 소스를 원하는만큼 혼합하십시오. 예를 들어 필터가 있거나없는 두 개의 직접 인스턴스와 하나의 전체 인스턴스
    • 스크립트 편집기 (Avalon Text, 동일한 monodevelop 사용)
    • 스크립트는 구문 분석되고 실행 전에 오류가 감지됩니다.
    • 스크립트는 GO 명령문에 의해 '분할'됩니다.
    • 배포 파일에 저장
    • 배포하기 전에 모든 데이터베이스 목록을 가져옵니다.
    • 무슨 일이 일어나고 있는지 실시간으로 확인하십시오 (PRINT 문이 권장됩니다!).
    • 오류가 발생하면 자동으로 독립 데이터베이스로 롤백합니다.
    • 다람쥐를 통한 투명 업데이트.

    당신은 그것을 얻을 수 있습니다 : https://github.com/andreujuanc/TakoDeploy

    관련 문제