2013-12-18 5 views
0

현재 배포 프로세스 내에서 데이터베이스에서 스크립트를 실행하려면 sqlcmd를 사용합니다. 이제는 여러 데이터베이스에서 한 가지 해결책은 배치 또는 foreach 데이터베이스에서이 스크립트를 사용하는 것입니다. 이 문제는 한 번에 하나씩 데이터베이스에 스크립트를 적용합니다. 시간을 절약 할 수있는 무언가가 필요합니다.동시에 여러 데이터베이스에서 SQL 스크립트 스크립트 실행 (병렬 실행)

SQLCMD는 여러 데이터베이스에서 병렬로 스크립트를 실행할 수 있습니까? 그렇지 않다면, 이것을 달성하기 위해 내가 사용할 수있는 스크립트 명령이 있습니까?

비슷한 질문이 있지만 올바른 해결 방법이 없거나 Parallel에서 실행하는 방법이 주 목표 인 스트레스입니다. SQL Multi Script 도구는 정확히이 작업을 수행하지만 오픈 소스가 아니며 스크립팅을 선호합니다.

아이디어가 있으십니까? 미리 감사드립니다.

답변

1

다음을 사용하여이를 수행 할 수있었습니다.

  1. 사용자는 특정 인스턴스에 배포 할 데이터베이스를 설정합니다.
  2. Foreach 데이터베이스 SQLCMD 명령 foreach 스크립트를 생성하여 배포하고 배치 파일에 배치합니다.

: S로 작성된 QLCMD_Commands_DB1.batSQLCMD_Commands_DB2.bat

  1. Foreach 배치 파일은 시작 명령을 새로운 마스터 배치 파일을 생성한다.

    START "" "SQLCMD_Commands_DB1.bat" START "" "SQLCMD_Commands_DB2.bat"

  2. 병렬 데이터베이스 스크립트를 배포 할 마스터 배치 파일을 실행합니다. 나는 이것을 쓰고 예상대로 작동한다.

1

SSMS를 사용하여 SQLCMD 스크립트를 실행하는 경우 그룹 쿼리를 사용하여 두 개 이상의 서버를 다시 실행할 수 있습니다. 병렬로 실행되는지 아닌지는 완전히 확신 할 수 없습니다. Look here for more information

+0

감사합니다. 그러나 SSMS를 통하지 않고 명령 줄에서 sqlcmd를 사용하고 있습니다. – Geddon

관련 문제