Bonjour,
J´ai un réseau étendue (Frame Relay) avec plusieurs serveur SQL de part et d´autres et j´aimerai réaliser un trigger qui met á jour une table tab1 dans un serveur A quand une autre table tab2 subit un insert dans un serveur B (insert automatique depuis un automate PLC), j' ai réaliser le code suivant
Le code passe bien la correccion de syntaxe, mais lorsque je fait "apply", rien ne ce passe, et encore pire l´insert auto de ma table tab2 ne se fait plus, comme si mon trigger planté et ca fesait planter aussi l´insert.
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
20
21
22
23 CREATE TRIGGER [TTRIGGER TRIG_INSERT_CONSUMPTION] ON [dbo].[gasoducto] FOR INSERT AS Declare @code as int select @code = tagid from inserted if (@code = 1) or (@code = 7) or (@code = 11) Begin INSERT OPENDATASOURCE( 'SQLOLEDB', 'Data Source=192.168.52.45;User ID=sa;Password=xxxxx' ).GMS_BUSSINES.dbo.GMS_GAS_CONSUMPTION Select code_entity = case when @code = 1 then 1 when @code = 7 then 3 when @code = 11 then 4 else null end , ins.sampletime,4,ins.valeur from inserted ins End
comment puis-je voir des logs ou les messages d´erreur que provoque mon trigger, j´ai déja testé ma commande OPENDATASOURCE sur un select et elle marche sans probleme.
Partager