我基本上想要创建一个嵌入了sql命令的批处理脚本,我想知道是否有办法使用cmdsql执行此操作。我正在使用sql server 2008 r管理工作室,我已经下载了sqlcmd v2.0。
我创建了一个试图连接到数据库并执行简单select
语句的批处理脚本,但是当我运行脚本时,它在连接到数据库后进入交互模式。它不会在脚本中执行sql,它只允许用户键入sql命令。代码如下:
sqlcmd -S <servername>\<instancename>
Select Number FROM Table1
GO
我更改了列/表/数据库等名称,因为这与工作相关,但您明白了。我对批处理脚本很新,没有太多经验,我对sql有更多的经验。
答案 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
命令!