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:
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:
1 2 3
| USE MaTable
select * from sysusers
where name like '%' and status<>0 |
Et tout ça dans mon curseur :
Code:
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 :
Citation:
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 !