Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64) 2019 年 9 月 24 日 13:48:23 版权所有 (C) 2019 Microsoft Corporation 速成版(64 位)在 Windows Server 2016 Standard 10.0(内部版本 14393:)(虚拟机管理程序)
我试图在 Windows 服务中运行 sqlcmd 命令,但什么也没发生
这是我的命令
sqlcmd -S mySQLserver\SQLEXPRESS -i D:\myscript.sql
使用 NSSM 创建服务
该服务已安装,但在启动服务时出现错误
使用 NSSM 执行相同操作,但这次运行批处理文件,执行后运行 sqlcmd 命令。这会安装并启动服务,但不执行任何操作
接下来是使用 NSSM 安装一个小型 VB.Net(VS 2019)应用程序
Public Class Form1
Private Sub Execute_batch_file()
Dim Process = New Process()
Process.StartInfo.UseShellExecute = False
Process.StartInfo.RedirectStandardOutput = True
Process.StartInfo.RedirectStandardError = True
Process.StartInfo.CreateNoWindow = True
Process.StartInfo.FileName = "SQLCMD.EXE"
Process.StartInfo.Arguments = "-S mySQLserver\SQLEXPRESS -i D:\myscript.sql
"
Process.StartInfo.WorkingDirectory = "D:\"
'I have put some stuff here to copy files from one place to another
Process.Start()
'I have put some stuff here to copy different files from one place to another
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Execute_batch_file()
End Sub
End Class
它作为服务安装并启动,但不执行 SQLCMD 进程,但是,命令之前和之后的文件复制Process Start()
工作正常,所以我知道服务正常。
我也尝试过使用 Visual Studio 来创建服务并得到了相同的结果,一切正常,计时器、日志记录等,但 SQLCMD 进程除外。
最后...如果我使用相同的参数从命令行运行 SQLCMD,它可以正常工作。如果我运行包含 SQLCMD 命令和参数的批处理文件,它可以正常工作,只是不能通过服务。
我浏览了整个论坛,除了一条没有任何答案的帖子外,没有找到任何类似的内容。
任何帮助,将不胜感激
NSSM 使用直接访问 SQLCMD 和参数 NSSM 使用批处理文件运行 SQLCMD 和参数 NSSM 使用已编译的 VB 应用程序运行进程(批处理文件中的 sql 脚本) Visual Studio - Windows 服务