디렉토리의 모든 SQL 파일 실행
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 파일이 완료되었습니다!
FOR를 사용합니다.명령 프롬프트에서:
c:\>for %f in (*.sql) do sqlcmd /S <servername> /d <dbname> /E /i "%f"
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
- 이제 실행
제가 찾은 가장 쉬운 방법은 다음과 같은 단계를 포함했습니다(단 하나의 요구 사항은 Win7+에 있어야 한다는 것입니다.
- 탐색기에서 폴더 열기
- 모든 스크립트 파일 선택
- Shift 키를 누름
- 선택 항목을 마우스 오른쪽 단추로 클릭하고 "경로로 복사"를 선택합니다.
- SQL Server Management Studio로 이동
- 새 쿼리 생성
- 쿼리 메뉴, "SQLCMD 모드"
- 목록을 붙여넣은 다음 H+, 'C:'(또는 드라이브 문자가 무엇이든 상관 없음)를 ':r "C:'(즉, 줄 앞에 ':r')로 바꿉니다.
- 쿼리를 실행합니다.
길게 들리지만 실제로는 매우 빠릅니다(가장 작은 단계까지 설명한 것처럼 길게 들립니다).
관리 스튜디오에서 Query > SQLCMD mode 옵션을 클릭하여 SQLCMD를 활성화했는지 확인합니다.
파일4" .sql 파일)이 합니다.
script1.sql,script2.sql,script3.sql,script4.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>
스크립트를 실행할 데이터베이스를 사용합니다.예를 들어 데이터베이스가 "직원"인 경우 명령어는 다음과 같습니다.SQLCMD -E -dEmployee -ic:\Scripts\Main.sql PAUSE
배치 파일을 두 번 클릭하여 실행합니다.
일반 쿼리
batch.bat라는 이름의 메모장에 아래 행을 저장하고 모든 스크립트 파일이 있는 폴더 안에 넣습니다.
for %%G in (*.sql) do sqlcmd /S servername /d databasename -i"%%G"
pause
예
%G in(*.sql)에 대해 sqlcmd /SNFGDD23432 /dEMPLYEDB -i"%%%를 수행합니다.G" 일시 중지
로그인에 실패한 경우 사용자 이름과 암호를 사용하여 아래 코드를 사용하십시오.
for %%G in (*.sql) do sqlcmd /S SERVERNAME /d DBNAME -U USERNAME -P PASSWORD -i"%%G"
pause
%G in (*.sql)에 대해 sqlcmd /SNE8148server /dEMPLYEDB -U Scott -P tiger -i"%%를 수행합니다.G" 일시 중지
스크립트 파일이 있는 폴더 내에 bat 파일을 만든 후에 bat 파일을 클릭하면 스크립트가 실행됩니다.
ApexSQL 전파를 사용할 수 있습니다.여러 데이터베이스에서 여러 스크립트를 실행하는 무료 도구입니다.필요한 만큼 스크립트를 선택하고 하나 이상의 데이터베이스(여러 서버)에 대해 스크립트를 실행할 수 있습니다.스크립트 목록을 생성하고 저장한 다음 생성된 순서대로 동일한 스크립트를 실행할 때마다 해당 목록을 선택하면 됩니다(여러 스크립트 목록을 추가할 수도 있음).
스크립트와 데이터베이스를 선택하면 기본 창에 스크립트가 표시되고 "실행" 단추를 클릭하기만 하면 다음 순서로 선택한 데이터베이스에서 모든 스크립트가 실행됩니다.
많은 SQL 파일을 드래그 앤 드롭하여 데이터베이스에서 실행할 수 있는 오픈 소스 유틸리티를 C#에 작성했습니다.
이 유틸리티에는 다음과 같은 기능이 있습니다.
- 스크립트 파일 끌어서 놓기
- 스크립트 파일 디렉터리 실행
- 실행 중 SQL Script 출력 메시지
- 녹색과 빨간색(실행 시 노란색)으로 표시된 스크립트가 통과 또는 실패했습니다.
- 오류 발생 시 중지 옵션
- 오류 시 스크립트 열기 옵션
- 각 스크립트에 소요된 시간으로 보고서 실행
- 총 지속 시간
- DB 연결 테스트
- 비동기식
- .Net 4 및 SQL 2008을 사용하여 테스트됨
- 단일 exe 파일
- 언제든지 연결 해제
osql 또는 sqlcmd 명령을 사용하여 여러 sql 파일을 실행할 수 있는 것으로 알고 있습니다.단점은 두 명령 모두에 대한 스크립트를 만들어야 한다는 것입니다.
SQLCMD를 사용하여 여러 SQL Server 스크립트 실행
OSQL(sql server 2000용)
http://msdn.microsoft.com/en-us/library/aa213087(v=SQL.80).aspx
@echo off
cd C:\Program Files (x86)\MySQL\MySQL Workbench 6.0 CE
for %%a in (D:\abc\*.sql) do (
echo %%a
mysql --host=ip --port=3306 --user=uid--password=ped < %%a
)
1단계: 위 라인은 노트 패드에 복사하여 배트로 저장합니다.
2단계: sql server에서 실행된 쿼리의 모든 sql 파일에서 abc 폴더를 ind 드라이브합니다.
3단계: IP, 사용자 ID 및 비밀번호를 입력합니다.
이 질문은 SQL Server에 더 중점을 두고 있는 것으로 알고 있습니다.저도 같은 질문이 있었습니다만, 포스트그레에 대해서요.SQL. 솔루션은 필요한 것과 매우 가까워서 필요한 모든 사람에게 제공할 수 있는 정보를 공유하려고 했습니다.
for %f in (*.sql) do psql -U [username] -d [database name] --command="\i %f";
모든 SQL 스크립트가 들어 있는 폴더에서 실행했습니다.
암호를 묻는 메시지가 표시되지 않도록 하기 위해 다음을 추가해야 했습니다.
*:*:*:[user]:[password]
에 있는 내 pgpass.conf 파일로.
%APPDATA%\Roaming\postgresql\
창에 있는 폴더.제가 직접 파일을 만들어야 했습니다.
다른 모든 스크립트를 호출하는 단일 스크립트를 생성할 수 있습니다.
다음을 배치 파일에 넣습니다.
@echo off
echo.>"%~dp0all.sql"
for %%i in ("%~dp0"*.sql) do echo @"%%~fi" >> "%~dp0all.sql"
해당 배치 파일을 실행하면 이름이 지정된 새 스크립트가 생성됩니다.all.sql
배치 파일이 있는 디렉터리에 있습니다.확장자가 있는 모든 파일을 찾습니다..sql
배치 파일이 있는 디렉터리에 있습니다.
그런 다음 을 사용하여 모든 스크립트를 실행할 수 있습니다.sqlplus user/pwd @all.sql
(또는 호출할 배치 파일을 확장합니다.sqlplus
생성 후all.sql
대본)
동일한 디렉토리에서 모든 SQL 파일을 실행하려면 다음 명령을 사용합니다.
ls | awk '{print "@"$0}' > all.sql
이 명령어는 "@"로 추가된 디렉토리에 있는 모든 SQL 파일의 이름으로 단일 SQL 파일을 만듭니다.
그 후에all.sql
간단하게 실행할 수 있도록 생성됩니다.all.sql
SQLPlus를 사용하면 모든 SQL 파일이 실행됩니다.all.sql
.
대화형 SQL을 사용할 수 있는 경우:
1 - 를 만듭니다.다음 코드를 가진 BAT 파일:
@ECHO OFF ECHO
for %%G in (*.sql) do dbisql -c "uid=dba;pwd=XXXXXXXX;ServerName=INSERT-DB-NAME-HERE" %%G
pause
2 - pwd와 ServerName을 변경합니다.
3 - 을 놓습니다.을(를) 포함하는 폴더의 BAT 파일.SQL 파일을 실행합니다.
언급URL : https://stackoverflow.com/questions/2583517/run-all-sql-files-in-a-directory
'programing' 카테고리의 다른 글
Excel을 데이터 테이블로 신속하게 가져오기 (0) | 2023.04.26 |
---|---|
Angular2 - 라디오 버튼 바인딩 (0) | 2023.04.26 |
iOS 앱에서 Safari를 시작하고 URL을 여는 방법 (0) | 2023.04.26 |
ARC를 사용하도록 프로젝트를 변환할 때 "스위치 케이스가 보호 범위 내에 있다"는 것은 무엇을 의미합니까? (0) | 2023.04.26 |
std:: 문자열을 const char* 또는 char*로 변환하는 방법 (0) | 2023.04.21 |