Відповіді:
Створіть .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 %%G in (*.sql) do sqlcmd /S servername /d databaseName -U username -P "password" -i"%%G"
Використовуйте ЗА . З командного рядка:
c:\>for %f in (*.sql) do sqlcmd /S <servername> /d <dbname> /E /i "%f"
У студії управління SQL відкрийте новий запит і введіть усі файли, як показано нижче
:r c:\Scripts\script1.sql
:r c:\Scripts\script2.sql
:r c:\Scripts\script3.sql
Клацніть на режимі SQLCMD; Файли будуть вибрані сірим кольором, як показано нижче
:r c:\Scripts\script1.sql
:r c:\Scripts\script2.sql
:r c:\Scripts\script3.sql
Переконайтеся, що увімкнено SQLCMD, натиснувши на пункт Запит> Режим SQLCMD в студії управління.
Припустимо, у вас є чотири .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: \ скриптах.
Створіть пакетний файл ExecuteScripts.bat
з назвою:
SQLCMD -E -d<YourDatabaseName> -ic:\Scripts\Main.sql
PAUSE
Не забудьте замінити <YourDatabaseName>
базу даних, для якої потрібно виконати сценарії. Наприклад, якщо база даних - "Співробітник", командою буде така:
SQLCMD -E -dEmployee -ic:\Scripts\Main.sql
PAUSE
Виконайте пакетний файл, двічі клацнувши той самий.
-b
прикладу:SQLCMD -b -i "file 1.sql","file 2.sql"
Ви можете використовувати ApexSQL Propagate . Це безкоштовний інструмент, який виконує безліч скриптів на декількох базах даних. Ви можете вибрати стільки сценаріїв, скільки вам потрібно, і виконати їх на одній або декількох базах даних (навіть на декількох серверах). Ви можете створити список скриптів і зберегти його, а потім просто вибрати цей список кожного разу, коли потрібно виконати ті самі скрипти в створеному порядку (також можна додати кілька списків скриптів):
Коли вибрані сценарії та бази даних, вони будуть показані в головному вікні, і все, що вам потрібно зробити, це натиснути кнопку «Виконати», і всі сценарії виконуватимуться на вибраних базах даних у заданому порядку:
Загальний запит
збережіть рядки нижче в блокноті з назвою batch.bat і помістіть всередину папки, де є весь ваш файл сценарію
for %%G in (*.sql) do sqlcmd /S servername /d databasename -i"%%G"
pause
ПРИКЛАД
для %% G у (* .sql) do sqlcmd / S NFGDDD23432 / d EMPLYEEDB -i "%% G" пауза
колись, якщо для вас не вдалося ввійти, будь ласка, використовуйте наведений нижче код з ім'ям користувача та паролем
for %%G in (*.sql) do sqlcmd /S SERVERNAME /d DBNAME -U USERNAME -P PASSWORD -i"%%G"
pause
для %% G у (* .sql) do sqlcmd / S NE8148server / d EMPLYEEDB -U Скотт -P тигр -i "%% G" пауза
Після створення файлу bat всередині папки, в якій знаходяться ваші файли сценаріїв, просто натисніть на файл bat, і ваші сценарії виконуватимуться
Я написав утиліту з відкритим кодом у C #, яка дозволяє перетягувати багато файлів SQL і починати їх запускати проти бази даних.
Утиліта має такі функції:
Найпростіший спосіб, який я знайшов, включав наступні кроки (єдина вимога - це бути в Win7 +):
Це звучить довго, але насправді це дуже швидко .. (це звучить довго, як я описав навіть найменші кроки)
Що я знаю, ви можете використовувати команди osql або sqlcmd для виконання декількох файлів sql. Недолік полягає в тому, що вам доведеться створити сценарій для обох команд.
Використання SQLCMD для виконання декількох скриптів SQL Server
OSQL (Це для sql сервера 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: вище рядки скопіюйте в блокнот, збережіть його як bat.
step2: Папка abc d d у всіх файлах Sql у запитах, виконаних на сервері sql.
step3: введіть ip, ідентифікатор користувача та пароль.
Ви можете створити єдиний скрипт, який викликає всі інші.
Помістіть у пакетний файл наступне:
@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 файли, та запустіть його.