problème avec sp_executesql
Bonjour,
Quand je regarde le site de miscrosoft (http://msdn.microsoft.com/fr-fr/libr...ql.105%29.aspx), il donne ceci comme example d'utilisation:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| DECLARE @IntVariable INT;
DECLARE @SQLString NVARCHAR(500);
DECLARE @ParmDefinition NVARCHAR(500);
/* Build the SQL string one time. */
SET @SQLString =
N'SELECT * FROM AdventureWorks2008R2.Sales.Store WHERE SalesPersonID = @SalesID';
/* Specify the parameter format one time. */
SET @ParmDefinition = N'@SalesID int';
/* Execute the string with the first parameter value. */
SET @IntVariable = 275;
EXECUTE sp_executesql @SQLString, @ParmDefinition,
@SalesID = @IntVariable; |
Moi j'ai besoin d'avoir un varchar comme variable, j'ai donc adapté le code pour avoir ceci:
Code:
1 2 3 4 5 6 7 8
| declare @SqlString nvarchar(500);
declare @ParmDefinition nvarchar(500);
declare @NVarCharVariable nvarchar(500);
set @SqlString = N'select * from [@ServerName].[thenameofmydb].[dbo].Currency';
set @ParmDefinition = N'@ServerName nvarchar(500)';
set @NVarCharVariable = N'thenameofmyserver';
EXECUTE sp_executesql @SqlString, @ParmDefinition,
@ServerName = @NVarCharVariable; |
Mais j'ai l'erreur suivante :
Citation:
Msg 7202, Level 11, State 2, Line 1
Could not find server '@ServerName' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers.
Il n'a donc pas remplacé @ServerName par le nom de mon serveur 'thenameofmyserver'... Qu'est-ce que je ne fais pas correctement s'il vous plaît? Et au passage, est-ce qu'il n'y a pas plus simple pour exécuter une requête sql avec une variable de type varchar dedans?
D'avance merci pour vos retours,
Julien