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

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
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.
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.