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:
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
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;
Mais j'ai l'erreur suivante :
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;
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?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.
D'avance merci pour vos retours,
Julien
Partager