是否可以使用cmdsql使用sql命令创建批处理脚本?

时间:2013-06-06 09:10:26

标签: sql batch-file sqlcmd

我基本上想要创建一个嵌入了sql命令的批处理脚本,我想知道是否有办法使用cmdsql执行此操作。我正在使用sql server 2008 r管理工作室,我已经下载了sqlcmd v2.0。

我创建了一个试图连接到数据库并执行简单select语句的批处理脚本,但是当我运行脚本时,它在连接到数据库后进入交互模式。它不会在脚本中执行sql,它只允许用户键入sql命令。代码如下:

sqlcmd -S <servername>\<instancename>
Select Number FROM Table1
GO

我更改了列/表/数据库等名称,因为这与工作相关,但您明白了。我对批处理脚本很新,没有太多经验,我对sql有更多的经验。

2 个答案:

答案 0 :(得分:1)

您可以尝试read the documentation。通过键入sqlcmd -?

,可以从命令行获取文档概要

使用默认数据库从批处理文件中运行单个SQL-Server查询:

sqlcmd -S <servername>\<instancename> -Q "Select Number FROM Table1"

答案 1 :(得分:0)

将输入提供给程序的标准方法是准备输入并通过|管道重定向。例如:

(
echo Select Number FROM Table1
echo GO
echo . . .
echo EXIT or QUIT or BYE...
) | sqlcmd -S <servername>\<instancename>

但是,如果批处理文件的目的只是执行sql命令(并且没有批处理逻辑),则更简单的方法是使用您通过键盘输入的相同输入准备.txt文件:

sqlcmd -S <servername>\<instancename>
Select Number FROM Table1
GO

...然后以这种方式将该文件导入cmd.exe:

cmd < theFile.txt

在这种情况下,不要忘记插入sql的exit命令和cmd.exe的exit命令!