SQL Server 2005 데이터베이스에서 다른 개발자가 변경 한 내용을 적용하기 위해 실행해야하는 .sql 파일이 많이 있습니다. 파일 이름은 다음 패턴에 따라 지정됩니다.
0001 - abc.sql
0002 - abcef.sql
0003 - abc.sql
...
한 번에 모두 실행할 수있는 방법이 있습니까?
답변
다음 명령을 사용하여 .BAT 파일을 만듭니다.
for %%G in (*.sql) do sqlcmd /S servername /d databaseName -E -i"%%G"
pause
사용자 이름과 암호를 제공해야하는 경우
for %%G in (*.sql) do sqlcmd /S servername /d databaseName -U username -P
password -i"%%G"
사용자 / 비밀번호가 제공되는 경우 “-E”는 필요하지 않습니다.
이 .BAT 파일을 .SQL 파일을 실행하려는 디렉토리에 넣고 .BAT 파일을 두 번 클릭하면 완료됩니다!
답변
답변
-
SQL Management Studio에서 새 쿼리를 열고 아래와 같이 모든 파일을 입력합니다.
:r c:\Scripts\script1.sql :r c:\Scripts\script2.sql :r c:\Scripts\script3.sql
- SQL Management Studio의 쿼리 메뉴로 이동하여 SQLCMD 모드가 활성화되어 있는지 확인합니다.
-
SQLCMD 모드를 클릭하십시오. 파일은 아래와 같이 회색으로 선택됩니다.
:r c:\Scripts\script1.sql :r c:\Scripts\script2.sql :r c:\Scripts\script3.sql
- 이제 실행
답변
Management Studio에서 쿼리> SQLCMD 모드 옵션을 클릭하여 SQLCMD를 활성화했는지 확인합니다.
-
script1.sql,script2.sql,script3.sql,script4.sql
폴더에 4 개의 .sql 파일 ( ) 이 있다고 가정 합니다c:\scripts
. -
다음을 사용하여 기본 스크립트 파일 (Main.sql)을 만듭니다.
:r c:\Scripts\script1.sql :r c:\Scripts\script2.sql :r c:\Scripts\script3.sql :r c:\Scripts\script4.sql
Main.sql을 c : \ scripts 자체에 저장합니다.
-
ExecuteScripts.bat
다음과 같은 이름의 배치 파일을 만듭니다 .SQLCMD -E -d<YourDatabaseName> -ic:\Scripts\Main.sql PAUSE
<YourDatabaseName>
스크립트를 실행하려는 데이터베이스 로 바꾸는 것을 잊지 마십시오. 예를 들어 데이터베이스가 “Employee”인 경우 명령은 다음과 같습니다.SQLCMD -E -dEmployee -ic:\Scripts\Main.sql PAUSE
-
동일한 파일을 두 번 클릭하여 배치 파일을 실행합니다.
답변
ApexSQL Propagate를 사용할 수 있습니다 . 여러 데이터베이스에서 여러 스크립트를 실행하는 무료 도구입니다. 필요한만큼 스크립트를 선택하고 하나 또는 여러 데이터베이스 (여러 서버 포함)에 대해 실행할 수 있습니다. 스크립트 목록을 생성하고 저장 한 다음 생성 된 순서대로 동일한 스크립트를 실행할 때마다 해당 목록을 선택하기 만하면됩니다 (여러 스크립트 목록도 추가 할 수 있음).
스크립트와 데이터베이스를 선택하면 기본 창에 표시되며 “실행”버튼을 클릭하기 만하면 모든 스크립트가 선택한 데이터베이스에서 주어진 순서대로 실행됩니다.
답변
일반 쿼리
아래 줄을 batch.bat 라는 이름으로 메모장에 저장하고 모든 스크립트 파일이있는 폴더 안에 넣습니다.
for %%G in (*.sql) do sqlcmd /S servername /d databasename -i"%%G"
pause
예
(* .sql)의 %% G에 대해 sqlcmd / S NFGDDD23432 / d EMPLYEEDB -i “%% G”일시 중지
로그인에 실패한 경우 사용자 이름 과 비밀번호 와 함께 아래 코드를 사용하십시오.
for %%G in (*.sql) do sqlcmd /S SERVERNAME /d DBNAME -U USERNAME -P PASSWORD -i"%%G"
pause
(* .sql)의 %% G에 대해 sqlcmd / S NE8148server / d EMPLYEEDB -U Scott -P tiger -i “%% G”일시 중지
스크립트 파일이있는 폴더 안에 bat 파일을 만든 후 bat 파일을 클릭하면 스크립트가 실행됩니다.
답변
저는 많은 SQL 파일을 끌어다 놓고 데이터베이스에 대해 실행할 수 있는 오픈 소스 유틸리티 를 C #으로 작성했습니다.
이 유틸리티에는 다음과 같은 기능이 있습니다.
- 드래그 앤 드롭 스크립트 파일
- 스크립트 파일 디렉토리 실행
- SQL 스크립트는 실행 중 넣기 메시지를 출력합니다.
- 녹색 및 빨간색으로 표시된 스크립트 통과 또는 실패 (실행 중이면 노란색)
- 오류시 중지 옵션
- 오류시 스크립트 열기 옵션
- 각 스크립트에 소요 된 시간으로 보고서 실행
- 총 지속 시간
- DB 연결 테스트
- 비동기
- .Net 4 및 SQL 2008로 테스트 됨
- 단일 exe 파일
- 언제든지 연결 끊기