Rebonjour,
j'ai réalisé ma procédure stockée comme vous me l'aviez conseillé, seulement maintenant j'ai une erreur du type :
Impossible de traiter l'objet "exec INSERT_DATA @table = "Utilisateur", @values = "(' ', ' ', 'test', 'test', ' ', ' ')"". Le fournisseur OLE DB "SQLNCLI" du serveur lié "ServeurLie" indique que l'objet n'a pas de colonne ou que l'utilisateur actuel ne dispose pas des autorisations nécessaires sur cet objet.
Ma procédure stockée qui est sur mon ServeurLie :
1 2 3 4 5 6 7 8 9 10 11 12 13
| set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[INSERT_DATA]
@table varchar(50),
@values varchar(8000)
AS
DECLARE @myInsertQuery varchar(8000)
BEGIN
SELECT @myInsertQuery = 'insert into '+@table+' values '+@values+';select SCOPE_IDENTITY() AS "Identity"';
EXECUTE(@myInsertQuery);
END |
Elle me retourne donc le dernier identifiant automatique.
Je l'appel de cette façon à partir de mon serveur principal :
select * from openquery ("ServeurLie", 'exec INSERT_DATA @table = "Utilisateur", @values = "('' '', '' '', ''test'', ''test'', '' '', '' '')"');
Je ne pense pas que ce soit un problème de droits, vu que je peux faire des
select * from OPENQUERY ('ServeurLie', select * from maTable) ...
sur ce serveur sans qu'il n'y ait aucun problème de droits. Je ne vois pas pourquoi j'ai cette erreur.
Merci de votre aide.
Partager