SQL install和sqlcmd在同一个.bat文件中出现问题

won*_*man 4 sql-server install batch-file sqlcmd sql-server-2008-r2

我正在尝试使用单个.bat文件:1)在Windows 7 Professional 64位计算机上从SQLEXPR_x64_ENU.exe安装SQL Server 2008 R2 Express,以及2)安装完成后运行一些.sql脚本.

似乎如果sqlcmd从运行安装的同一.bat文件运行,则sqlcmd失败并出现以下错误:"'sqlcmd'未被识别为内部或外部命令,可运行的程序或批处理文件."

如果install和.sql脚本是从单独的.bat文件运行的,那么我没有问题(所以我知道问题不在于sqlcmd语法).我尝试使用单个.bat并在新窗口中运行sqlcmd命令(启动cmd/c"sqlcmd ...")并从原始.bat文件中调用包含sqlcmd命令的第二个.bat文件(\filepath\file.bat)但在每种情况下都会出现相同的错误.

我不希望用户必须启动多个.bat文件,因为这会导致以错误的顺序运行.bat文件,运行一个但不运行另一个等的问题等.

我的两个问题是:

  1. 有谁知道为什么会这样?
  2. 是否有解决方案只涉及启动单个.bat文件?

小智 5

我怕我不能在这个问题上肯定100%,我不能把它添加到评论还,所以我必须把它放在这里.

1.有谁知道为什么会这样?

  • 我想象一下这种情况正在发生,因为当您安装SQL Server时,它将添加到Windows环境变量的特定路径.由于批处理脚本用于安装SQL Server版本,我猜它不会刷新Windows环境变量,这意味着C:\ Program Files\Microsoft SQL Server\100\Tools\Binn \中包含的SQLCMD.exe文件(或者,无论您安装它,都不会缓存).

2.有解决方案只涉及启动单个.bat文件吗?

  • 如果每次都将其安装到默认位置,例如C:\ Program Files\Microsoft SQL Server.然后你可以直接从那里启动SQLCMD.IE

C:\ Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.exe -q等....

您可能值得为该路径创建变量以使其更容易.

我不知道从批处理脚本刷新或寻找新的Windows环境变量的过程,但是我想象的可能是原因.