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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
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