Bonjour

je dois créer un trigger qui va mettre à jour des données d'une bdd à une autre
pour cela je voudrais rendre paramétrable le nom de la bdd cible pour pouvoir changer bdd facilement.

apres des tests sur le trigger il s'avere que les execute n'acceptent pas d'utiliser les tables inserted et deleted alors que je suis obligé de faire des concaténations de chaine pour utiliser mon paramétrage.
Y a t' il une autre solution?

Merci

Gaétan

voir l'exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
la fonction dbo.base_prod('Ma_table') renvoie >> nomBDD.dbo.Ma_table
 
ALTER TRIGGER [dbo].[MAJ_TABLE]
   ON  [dbo].[Contact_Traitement]
   AFTER INSERT
AS 
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
 
    -- Insert statements for trigger here
declare @sq as nvarchar(500)
 
---- Ajouter les nouvelles données
set @sq = 'insert into '+ dbo.base_prod('Ma_table') + 
		' select contact.A_code,year(A_date_debut),year(a_date_fin),a_flag_traitement  from inserted T left join Contact on T.contact_id=Contact.contact_id '
 
exec (@sq)