如何从批处理文件启动多个sqlcmd窗口?

时间:2012-08-10 20:06:58

标签: sql-server batch-file

如何从批处理文件中启动多个sqlcmd窗口,这些窗口都指向同一个数据库?例如,当我运行.bat文件时,我希望它根据我传入的参数生成N个窗口(例如5)。这5个窗口中的每一个都应该在我的桌面上打开,并且都连接到同一个数据库。这就是我想先做的事情。一旦我有了这个工作,我就想让这5个窗口中的每一个都运行一个独特的.sql脚本来执行插入,查询,更新,删除,调用存储过程...基本上模拟生产环境来帮助我们调试工作(在用户负载下)。我希望看到每个.sql的输出在执行时在sqlcmd窗口中表示飞行。

我找到了:

http://hammerora.sourceforge.net/

这是一个专注于TPC-C负载测试的GUI工具,但它并不是我想要的。我提出它是因为它是一个类似的概念,我想做的只是由较小规模的批处理文件驱动(例如最多20个并发用户)。

我在90年代后期创建了一个这样的系统用于Oracle可伸缩性测试,但是从那时起我就不在数据库业务中了,不记得如何做到这一点以及支持SQL需要多么不同服务器。所以我知道在Oracle中这是可能的,但是在给定命令行工具和脚本功能的情况下,只是不确定SQL Server。

有没有人知道如何使其发挥作用?

实施例。创建一个如下所示的launch3users.bat文件:

sqlcmd -d MichaelTest -run this 1.sql file
Pause

sqlcmd -d MichaelTest -run this 2.sql file
Pause

sqlcmd -d MichaelTest -run this 3.sql file
Pause

其中每个都会生成一个sqlcmd窗口并运行正确的.sql脚本,该脚本可以执行DML操作或调用存储过程。

谢谢, 迈克尔

1 个答案:

答案 0 :(得分:2)

您只需将“start”添加到命令的开头。

start sqlcmd -d MichaelTest -i 1.sql

start sqlcmd -d MichaelTest -i 2.sql

start sqlcmd -d MichaelTest -i 3.sql