0

我基本上想创建一个嵌入了 sql 命令的批处理脚本,我想知道是否有办法使用 cmdsql 来做到这一点。我正在使用 sql server 2008 r management studio,并且我已经下载了 sqlcmd v2.0。

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

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

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

4

2 回答 2

3

您可以尝试阅读文档。可以从命令行通过键入获得文档的概要sqlcmd -?

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

sqlcmd -S <servername>\<instancename> -Q "Select Number FROM Table1"
于 2013-06-06T11:53:00.797 回答
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 的退出命令和exitcmd.exe 的命令!

于 2013-06-06T11:12:50.233 回答