Bonsoir à tous

J'ai un problème avec une requete de sp_addlogin quand la variable est activée
J'espere pouvoir trouver la solution parmis vous , car je séche !!

Requete fonctionnelle mais sans variable :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
use WinXS
select
/*
u.name as Utilisateur
,g.name as Groupe
,x21.LoginName
*/
'exec sp_addlogin N'''+ x21.LoginName + ''',''' + x21.LoginName+''', WinXS, english'
 
FROM sysusers u JOIN sysusers g ON u.gid = g.uid
 join WinXS..x21 x21 ON u.name = x21.LoginName
WHERE g.name LIKE 'WinXS%'
order by g.name, u.name
Requete que j'aimerais faire fonctionner avec la variable :

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
use WinXS
DECLARE @SQL VARCHAR(8000)
select @SQL = ISNULL(@SQL, 'USE master; ') +
 
'exec sp_addlogin N'''+ x21.LoginName + ''',''' + x21.LoginName+''', WinXS, english'
/*
u.name as Utilisateur
,g.name as Groupe
,x21.LoginName
*/
FROM sysusers u JOIN sysusers g ON u.gid = g.uid
 join WinXS..x21 x21 ON u.name = x21.LoginName
WHERE g.name LIKE 'WinXS%'
order by g.name, u.name
 
-- PRINT @SQL
 
USE master
EXEC (@SQL)
elle me remonte l'erreur suivante :
Serveur*: Msg 170, Niveau 15, État 1, Ligne 1
Line 1: Incorrect syntax near 'sp_addlogin'.

Pour exemple celle-ci fonctionne parfaitement :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Use WinXS
DECLARE @SQL VARCHAR(8000)
select  @SQL = ISNULL(@SQL, 'USE master; ') +
 'EXEC sp_addrole N'''+ g.name + ''' '
FROM sysusers u JOIN sysusers g ON u.gid = g.uid
left join WinXS..x21 x21 ON u.name = x21.LoginName
WHERE g.name = u.name  AND g.name LIKE 'WinXS%' 
order by g.name, u.name
 
-- PRINT @SQL
 
USE master
EXEC (@SQL)

Bonne soirée !