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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé 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
    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 : 48
    Localisation : Congo-Brazzaville

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

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

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  3. #3
    Membre éclairé 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
    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 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 228
    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
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

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