Bonjour à tous,

Je voudrais faire une stored dynamique et pouvoir recupérer le resultat d'un première requête dynamique de ma stored pour le reutiliser plus tard dans cette même stored

voici mon code
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
26
27
28
29
 
 
ALTER PROCEDURE [dbo].[GetroleEffectif]
 
@idu as int,
@nomr as nvarchar(50) 
 
AS
BEGIN 
declare @idp as int
 
declare @sql as nvarchar(500)
 
set @sql = 'select idpersonne from ' + @nomr + ' where id' + @nomr + ' = ' + @idu;
print @sql
	 set @idp=( @sql  ) 
 
print @idp
 
select hdu.nomrole,a.nomrole,hda.nomrole,v.nomrole,e.nomrole
	from personne p
left outer join helpdeskuser hdu on p.idpersonne = hdu.idpersonne
left outer join helpdeskadmin hda on p.idpersonne = hda.idpersonne
left outer join admin a on a.idpersonne =p.idpersonne
left outer join viewer v on v.idpersonne = p.idpersonne
left outer join enduser e on e.idpersonne = p.idpersonne
where p.idpersonne = @sql
 
END
J'ai aussi essayeé en faisant directement @idp = ('select idpersonne from ' + @nomr + ' where id' + @nomr + ' = ' + @idu); mais il me renvoit l'erreur que voici


Msg 245, Level 16, State 1, Procedure GetroleEffectif, Line 14
Conversion failed when converting the nvarchar value 'select idpersonne from admin where idadmin = ' to data type int.