2012-11-17 101 views
3

我想从命令行针对SQL Server 2005数据库运行一系列SQL语句。在命令行上执行一系列SQL命令

当我启动第一个发言

osql -E -S <Server_Name>\<Instance_Name> -d <Server_Name> 

它会从那里提示符窗口1>我无法通过脚本进一步进行后。

如何给输入1>提示我的意思是让下一个SQL语句

BACKUP DATABASE TO DISK = 'c:\test.bak' WITH INIT,SKIP 

最后exit到提示

我& &试过,但我想这是只有命令行命令。

回答

2

您AE寻找在SQLCMD工具-Q开关(不使用OSQL上SQLSERVER 2005或更高版本)(类型SQLCMD /?查看所有选项)或鲁科特了上msdn

sqlcmd -E -S <Server_Name>\<Instance_Name> -d <Server_Name> -Q "BACKUP DATABASE TO DISK = 'c:\test.bak' WITH INIT,SKIP" 

或者,您可以创建一个sqlscript文件,您可以在其中放入要执行的所有sql语句。假设你的名字你的文件myscript.sql osql命令会是这样的:

sqlcmd -E -S <Server_Name>\<Instance_Name> -d <Server_Name> -i myscript.sql 
+0

此外:从SQL Server ** 2005开始** - 您应该使用'sqlcmd'而不是'osql' –

+0

Tha nks Rene !!!它解决了我的问题... – kunpr05

1

也许你可能想尝试一个小窍门,从其他的问题出现在这个论坛(这是不幸的是删除)。

您可以直接在命令下面的行插入命令的输入,然后执行文件NOT作为批处理文件,但作为输入por cmd.exe执行(类似于Linux中的文档)。例如:

script.TXT:

​​

执行以前的 “脚本” 是这样的:

cmd < script.TXT 

如果执行此测试,请报告结果...

安东尼奥

+0

感谢您的回复,但它并没有帮助我...因为我再次使用script.txt中的一些批处理命令你建议... – kunpr05

+0

你可以执行以前的script.TXT文件在你的正常批处理文件,也就是在你的批处理文件中包含'cmd Aacini