[2012] Stored Procedure avec sp_executesql
Bonjour bonjour,
J'essaie de creer une procedure stockee dans une db A qui va executer une requete sur une db B. (Pour x raisons je dois proceder ainsi)
J'utilise pour ca la commande dbo.sp_executesql precede du serveur et de la db a utilise.
En cherchant un peu j'ai trouve deux facons de faire mais aucune ne marchent ...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
Create PROCEDURE TESTPROC
(
@ShortName NVARCHAR(50)
)
AS
Begin
Declare @sql NVARCHAR(1000)
SET @sql = N'Select * from emp where ShortName = ''@ShortName'' '
exec [serveur].[db].dbo.sp_executesql @ShortName, @sql
END
GO |
Ou bien
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
ALTER PROCEDURE TESTPROC
(
@ShortName VARCHAR(50)
)
AS
Begin
exec [serveur].[db].dbo.sp_executesql
N'Select * from emp where ShortName = ''@ShortName''
'
END
GO |
et j'execute ainsi :
Code:
1 2
|
EXEC TESTPROC @ShortName = 'totot' |
Le probleme c'est que si je bidouille un peu soit SQL server me dit : Must declare the scalar variable "@ShortName".
Soit ca me retourne une table vide. ( La requete marche sans le parametre, si je met une valeur en dure)
Quelau'un saurait la raison de mon probleme ?
Merci Beaucoup