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

Développement SQL Server Discussion :

Comment passer un paramètre à 'USE'


Sujet :

Développement SQL Server

  1. #1
    Membre actif Avatar de toniolol
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2005
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 281
    Points : 296
    Points
    296
    Par défaut Comment passer un paramètre à 'USE'
    Bonjour,
    j'essaye désepérement de lister les utilisateurs de chaque table d'une base de données mais je me retrouve bloqué dans mon curseur...

    Ce que j'utilise :
    1- Lister les tables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select name from master.dbo.sysdatabases 
    where has_dbaccess(name) = 1
    order by name
    2- Lister les users d'une table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    USE MaTable
    select * from sysusers 
    where name like '%' and status<>0
    Et tout ça dans mon curseur :
    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
    declare @Lst_BDD as varchar(50)
    declare MonCurseur CURSOR
    for
    --Select chaq table 
    select name from master.dbo.sysdatabases 
    where has_dbaccess(name) = 1
    order by name
    --Mise en curseur
    OPEN MonCurseur
    FETCH MonCurseur INTO @Lst_BDD
    --Liste des users de la table
    WHILE @@fetch_status = 0
    BEGIN
    	USE @Lst_BDD
    	select * from sysusers where name like '%' and status<>0
    	FETCH MonCurseur INTO @Lst_BDD
    END
    --Fermeture + lib mem
    CLOSE MonCurseur
    DEALLOCATE MonCurseur
    Et la réponse :
    Serveur*: Msg 170, Niveau 15, État 1, Ligne 14
    Ligne 14 : syntaxe incorrecte vers '@Lst_BDD'.
    Merci d'avance de votre aide...
    Je ne sais pas comment chercher sur le forum car 'USE' est trop court pour les recherches !
    Pensez aux règles et au qui rime avec !

  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bnojour,

    Tu peux le faire dans du SQL dynamique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SET @sql = 'SELECT * FROM ' + @Lst_BDD + '.dbo.sysusers WHERE name LIKE ''%'' AND status<>0'
    EXEC (@sql)
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  3. #3
    Membre actif Avatar de toniolol
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2005
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 281
    Points : 296
    Points
    296
    Par défaut
    Que dire....
    Merci !!!!!
    Ca fonctionne parfaitement.
    Pensez aux règles et au qui rime avec !

  4. #4
    Membre actif Avatar de toniolol
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2005
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 281
    Points : 296
    Points
    296
    Par défaut
    Juste une petite précision, une sp système fait le travail que je voulais faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    use master
    exec sp_helplogins
    Elle me ramène en première partie les connexions avec leur db par défaut et en seconde partie les accès sur chaque db avec les droits respectifs.

    Si jamais ça peut aider....dommage que je ne l'ai pas trouvée plus tôt !
    Pensez aux règles et au qui rime avec !

  5. #5
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Tu peux aussi créer ta propre sp dans master, préfixée par sp_, que tu peux appeler à partir de n'importe quelle base, elle s'exécutera dans le context de la base actuelle, et tu n'auras pas besoin de USE.
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/03/2006, 08h06
  2. Comment passer des paramètre a OpenRecordset
    Par molarisapa dans le forum Access
    Réponses: 2
    Dernier message: 09/03/2006, 17h14
  3. Réponses: 3
    Dernier message: 28/02/2006, 08h43
  4. [VB6] Comment passer un paramètre à un vbs depuis du vb6
    Par durnambule dans le forum VBScript
    Réponses: 2
    Dernier message: 27/09/2005, 10h46
  5. Réponses: 7
    Dernier message: 30/12/2004, 12h01

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