Je développe une aplication qui lance le script SQL suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
 CREATE PROC killuser 
 AS 
 BEGIN 
 Declare @T nvarchar(10) 
 declare Decon CURSOR FOR 
 select convert(varchar(4), spid) 
 from master..sysprocesses 
 where dbid = db_id('BASETEST') 
 and spid <> @@spid 
 Declare @spid as varchar(4); 
 OPEN Decon 
 FETCH NEXT FROM Decon
   into  @spid; 
 WHILE (@@FETCH_STATUS = 0) 
 begin 
 set @T = 'KILL '+ @spid 
 exec sp_executesql @T 
 FETCH NEXT FROM Decon 
  into  @spid; 
 End 
 Close Decon 
 DEALLOCATE Decon; 
 End 
 GO
Le problème c'est que lorsque que je l'execute la mise es page est différente, il n'y a pas de saut de ligne. L'instruction est en une seule ligne et il me génére une erreur. Le problème à l'air de provenir du " GO" lorsque je les place sur une ligne la commande se passe bien :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
 CREATE PROC killuser  AS  BEGIN  Declare @T nvarchar(10)  declare  Decon CURSOR FOR  select convert(varchar(4), spid)  from master..sysprocesses  where dbid = db_id('BASETEST')  and spid <> @@spid  Declare @spid as varchar(4);  OPEN Decon  FETCH NEXT FROM Decon   into  @spid;  WHILE (@@FETCH_STATUS = 0)  begin  set @T = 'KILL '+ @spid  exec sp_executesql @T  FETCH NEXT FROM Decon   into  @spid;  End  Close Decon  DEALLOCATE Decon; End
 
GO
Mais existe il une autre solution ou une autre version du script sans le "GO" ???

Merci d'avance