에 의해 언급 된 sp_MSForEachDB를 사용하지만 배울 시간이 없어, 구축 및 테스트 하나.
- 귀하의 서버 목록을 대체
가 SSMS에 아래의 쿼리를 붙여 넣기하고 실행 SQL 및 배치 스크립트
그래서 난에서 행복 해요 언어로 그것을 할 수 있습니다
- 실행할 스크립트가 들어있는 파일의 경로 (예 : YourSQLScript.SQL 바꾸기)
- 로그 파일 경로 (예 : YourOutputLog.TXT 바꾸기)
당신은 당신의 출력 파일이 예에서는 그래서
WITH ServerList As (
SELECT 'Server1' ServerName UNION ALL
SELECT 'Server2' UNION ALL
SELECT 'Server3' UNION ALL
SELECT 'Server4' UNION ALL
SELECT 'Server5'
)
SELECT
'SQLCMD -S ' + ServerName + ' -E ' + ' -i C:\YourSqlScript.SQL -o C:\YourOutputLog.TXT'
From ServerList
UNION ALL
SELECT 'PAUSE'
파일 C에 서버를 로그인 할 스크립트를 변경하고 시작 SELECT @@SERVERNAME
을 추가 할 수 있습니다 : \ YourSqlScript.SQL
(이 제공 RAM에 감사합니다) SELECT @@SERVERNAME
EXEC sp_msforeachdb 'USE [?]; SELECT '?'; EXEC p_YourStoredProcedure;'
: 아마 같은 것을 포함해야
는 (당신은 확실히 처음으로 하나의 데이터베이스에이 스크립트를 테스트해야합니다)
복사 출력 한 후 텍스트 파일에 붙여 넣습니다. 텍스트 파일을 MyFirstBatchFile.CMD로 저장하십시오. 난 그냥 비행에 구축 어떻게 할 수있는 당신을 보여 -이 처음 작동하지 않을 : (\ YourOutputLog.TXT C)를
을 두 번 출력 파일을 확인이 파일
을 클릭 끝내라. 첫 번째 오류가 발생하면 앉아서 스스로 해결할 수 있는지 확인하십시오.
정기적으로이 작업을 수행해야하는 경우 자동화 방법에 대해 생각해 볼 수 있습니다.예를 들어 서버 목록을 자동으로 가져 오는 방법이 있습니다 (힌트 : SQLCMD -L
)
여러 서버를 정기적으로 관리하려면 Powershell을 사용해야합니다.
나는 이것을 MS Access와 연결 문자열 및 ADO 테이블을 사용하여 해킹했습니다. –
@RajMore .. 당신이 그것을 위해 응용 프로그램을 만들었다는 뜻입니까? 내게 세부 사항을 제공 할 수 있습니까? –
서버의 텍스트 파일을 거쳐 SQLCMD.EXE를 사용하는 일괄 스크립트 또는 PowerShell 스크립트를 작성할 수 있습니다. 솔루션에 관심이 있으면 게시하십시오. –