trytodoit 发表于 2008-07-17 09:35

这个脚本应该怎样写?

由于某种特殊原因,我需要一个这样的脚本,它的功能是,自动删除(kill)掉除自己(执行这个脚本的进程)和系统进程外的所有进程,要不然,要一个一个地kill好麻烦,有劳各位了!!

chuxu 发表于 2008-07-17 11:17


create proc killall
as
   begin
   declare @kspid int
   declare @ckspid char(20)
   
   declare a_cur for
   select spid from master..sysprocesses where suid>1

   open a_cur
   fetch a_cur into @kspid

   while @@sqlstatus = 0
   begin
       select @ckspid=convert(char(20),@kspid)
       select "kill "+@ckspid
       exec("kill "+@ckspid)
       fetch a_cur into @kspid
end
close a_cur
deallocate cursor a_cur


[ 本帖最后由 chuxu 于 2008-7-17 11:20 编辑 ]

trytodoit 发表于 2008-07-17 11:41

谢谢,我对您的敬仰尤如......

shawnlee 发表于 2008-07-17 13:27

wangledahai 发表于 2008-07-20 10:49

原帖由 chuxu 于 2008-7-17 11:17 发表 http://bbs.chinaunix.net/images/common/back.gif

create proc killall
as
   begin
   declare @kspid int
   declare @ckspid char(20)
   
   declare a_cur for
   select spid from master..sysprocesses where suid>1

   open a_cur
   fetc ...


这里面少了一个END!

为什么我执行的时候

会出现语法错误的提示:
Server Message:Number156, Severity15
Server 'WANGDONG', Procedure 'killall', Line 7:
Incorrect syntax near the keyword 'for'.

chuxu 发表于 2008-07-21 08:08

呵呵,不好意思,的确少了一个,加在最后就可以了。

wangledahai 发表于 2008-07-21 10:30

回复 #6 chuxu 的帖子

for前面少写了一个 cursor!

[ 本帖最后由 wangledahai 于 2008-7-21 10:32 编辑 ]

chuxu 发表于 2008-07-21 10:45

汗,错误这么多。

wangledahai 发表于 2008-07-21 11:02

回复 #8 chuxu 的帖子

现在已经可以了 至少我编译过去了!嘿嘿!


create proc killall
as
   begin
   declare @kspid int
   declare @ckspid char(20)
   
   declare a_curcursor for
   select spid from master..sysprocesses where suid>1

   open a_cur
   fetch a_cur into @kspid

   while @@sqlstatus = 0
   begin
       select @ckspid=convert(char(20),@kspid)
       select "kill "+@ckspid
       exec("kill "+@ckspid)
       fetch a_cur into @kspid
end
close a_cur
deallocate cursor a_cur
END
页: [1]
查看完整版本: 这个脚本应该怎样写?