如何关闭xp_cmdshell触发的命令提示符窗口

时间:2014-04-23 13:27:12

标签: sql sql-server

在我们的舞台环境中,我们希望根据错误自动运行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的缺点。

1 个答案:

答案 0 :(得分:1)

要回答你的问题,你真的无法关闭exe ...这取决于exe,除非你杀了它或什么的。如果您要从命令shell运行这样的可执行文件,则必须确保它以您需要的方式运行。在完成并退出之前,你基本上受可执行程序的支配。

相关问题