IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

[SQL-SERVER] Déconnecter user d'une BD probleme de requête


Sujet :

MS SQL Server

  1. #1
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut [SQL-SERVER] Déconnecter user d'une BD probleme de requête
    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

  2. #2
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Il te faut poster le méssage que MS SQL Serveur te renvoie.
    Il sera peut être plus parlant.

  3. #3
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut
    Le message ne va pas trop t'aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Line 24: Incorrect syntax near 'GO'.
    Cependant en enlevant le "GO" ça à l'air de tourner quand même par contre comment spécifié que le procédure stockée est destinée à une base ???

  4. #4
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 566
    Points
    19 566
    Billets dans le blog
    25
    Par défaut
    Votre killuser ressemble plus qu'étrangement à mon sp_tontonflingueur !

    Le GO, bien évidemment, est l'exécuteur de isql et ne marchera donc pas dans du code embarqué !

    Pour spécifier la base, il sufit de paramétrer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where dbid = db_id('BASETEST')
    en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where dbid = db_id(@DB)
    Référez vous à la sp_tontonflingueur

Discussions similaires

  1. [SQL-SERVER] "Déconnecter" les utilisateurs d'une
    Par Sytchev3 dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 18/07/2006, 11h30
  2. [SQL-Server] Sous requete dans une procédure stockée
    Par Worldofdada dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 09/02/2006, 11h18
  3. [SQL Server 2000][W2000] Empêcher une connexion
    Par Débéa dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 01/02/2006, 11h33
  4. [sql server] Deconnecter user inactif
    Par voodoo_mg dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/08/2005, 15h29
  5. Réponses: 9
    Dernier message: 17/03/2005, 09h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo