在我们的舞台环境中,我们希望根据错误自动运行exe。下面是我正在使用的代码
declare @minid int
declare @maxid int
select @minid=min(sno) from activityid
select @maxid =max(sno) from activityid
declare @cmd varchar(8000)
declare @cmd2 varchar(8000)
set @cmd='E:\Debug\Debug\Acces.exe /ly /activityId '
declare @ad int
declare @cmd1 varchar(8000)
while @minid<=@maxid
begin
select @ad=ad from activityid where sno=@minid--get activity
set @cmd2=@cmd+cast(@ad as varchar(8000))
exec master.dbo.xp_cmdshell @cmd2
set @minid=@minid+1
end
所以每次循环时,都会触发一个新的exe。
如何在执行后关闭exe,无论成功与否。
请注意,我只能从sql发送电子邮件,这是阶段性的,所以我们不必担心xp_cmdshell的缺点。
答案 0 :(得分:1)
要回答你的问题,你真的无法关闭exe ...这取决于exe,除非你杀了它或什么的。如果您要从命令shell运行这样的可执行文件,则必须确保它以您需要的方式运行。在完成并退出之前,你基本上受可执行程序的支配。