Answers:
使用以下命令创建.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"
使用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
点击SQLCMD模式;文件将以灰色选择,如下所示
:r c:\Scripts\script1.sql
:r c:\Scripts\script2.sql
:r c:\Scripts\script3.sql
通过单击管理工作室中的“查询”>“ SQLCMD模式”选项,确保已启用SQLCMD。
假设script1.sql,script2.sql,script3.sql,script4.sql
一个文件夹中有四个.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
双击执行批处理文件。
-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
例
对于(* .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 斯科特 -P Tiger -i“ %% G”暂停
在脚本文件所在的文件夹内创建bat文件后,只需单击bat文件,脚本即会执行
我知道您可以使用osql或sqlcmd命令执行多个sql文件。缺点是您将必须为两个命令创建一个脚本。
OSQL(用于sql server 2000)
http://msdn.microsoft.com/zh-CN/library/aa213087(v=SQL.80).aspx
如果可以使用Interactive 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-更改密码和服务器名称。
3-将.BAT文件放入包含.SQL文件的文件夹中并运行它。