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 !