OVH Cloud OVH Cloud

Trigger

2 réponses
Avatar
jpb
Bonjour,

nous essayons de mettre en place en trigger entre 2 serveurs et cela ne veut
pas fonctionner, y a t'il impossibilité de le faire où le script est mauvais??
merci pour votre aide
jp

CREATE TRIGGER TG_OnInsertUpdateUnpayed_GL065505 ON dbo.GL065505 FOR INSERT
AS BEGIN TRANSACTION

insert into [SV-98012].[UNPAID].dbo.ENTRIES (
COMPANY_ID,
ACCOUNT_ID,
TRANSACTION_NUMBER,
ENTRY_AMOUNT,
DESCRIPTION,
UNPAID_AMOUNT,
DATE_TRANSACTION,
GROUP_CD
)
Select
'55',
left(GL06001,7),
convert(Char(6),GL06002)+'552005'+convert(char(8),GL06016) ,
GL06004,
GL06005,
GL06004,
GL06003,
substring(GL06001,22,2)
from Inserted

if (@@ERROR <> 0 )
INSERT INTO UNPAID_TEMP (
COMPANY_ID,
ACCOUNT_ID,
TRANSACTION_NUMBER,
ENTRY_AMOUNT,
DESCRIPTION,
UNPAID_AMOUNT,
DATE_TRANSACTION,
GROUP_CD
)
SELECT
'55',
left(GL06001,7),
convert(Char(6),GL06002)+'552005'+convert(char(8),GL06016) ,
GL06004,
GL06005,
GL06004,
GL06003,
substring(GL06001,22,2)
FROM Inserted
else
COMMIT TRANSACTION

2 réponses

Avatar
Michel PRIORI
Pour moi,
1 virer BEGIN TRANSACTION car un trigger fait partie de la transaction !
2 en faire une procedure et tenter de l'executer avec des valeurs standards
pour voir
3 essayer avec une table de la même base


"jpb" a écrit :

Bonjour,

nous essayons de mettre en place en trigger entre 2 serveurs et cela ne veut
pas fonctionner, y a t'il impossibilité de le faire où le script est mauvais??
merci pour votre aide
jp

CREATE TRIGGER TG_OnInsertUpdateUnpayed_GL065505 ON dbo.GL065505 FOR INSERT
AS BEGIN TRANSACTION

insert into [SV-98012].[UNPAID].dbo.ENTRIES (
COMPANY_ID,
ACCOUNT_ID,
TRANSACTION_NUMBER,
ENTRY_AMOUNT,
DESCRIPTION,
UNPAID_AMOUNT,
DATE_TRANSACTION,
GROUP_CD
)
Select
'55',
left(GL06001,7),
convert(Char(6),GL06002)+'552005'+convert(char(8),GL06016) ,
GL06004,
GL06005,
GL06004,
GL06003,
substring(GL06001,22,2)
from Inserted

if (@@ERROR <> 0 )
INSERT INTO UNPAID_TEMP (
COMPANY_ID,
ACCOUNT_ID,
TRANSACTION_NUMBER,
ENTRY_AMOUNT,
DESCRIPTION,
UNPAID_AMOUNT,
DATE_TRANSACTION,
GROUP_CD
)
SELECT
'55',
left(GL06001,7),
convert(Char(6),GL06002)+'552005'+convert(char(8),GL06016) ,
GL06004,
GL06005,
GL06004,
GL06003,
substring(GL06001,22,2)
FROM Inserted
else
COMMIT TRANSACTION






Avatar
jpb
bonjour et merci,

sur le même serveur cela marche

merci

"Michel PRIORI" a écrit :

Pour moi,
1 virer BEGIN TRANSACTION car un trigger fait partie de la transaction !
2 en faire une procedure et tenter de l'executer avec des valeurs standards
pour voir
3 essayer avec une table de la même base


"jpb" a écrit :

> Bonjour,
>
> nous essayons de mettre en place en trigger entre 2 serveurs et cela ne veut
> pas fonctionner, y a t'il impossibilité de le faire où le script est mauvais??
> merci pour votre aide
> jp
>
> CREATE TRIGGER TG_OnInsertUpdateUnpayed_GL065505 ON dbo.GL065505 FOR INSERT
> AS BEGIN TRANSACTION
>
> insert into [SV-98012].[UNPAID].dbo.ENTRIES (
> COMPANY_ID,
> ACCOUNT_ID,
> TRANSACTION_NUMBER,
> ENTRY_AMOUNT,
> DESCRIPTION,
> UNPAID_AMOUNT,
> DATE_TRANSACTION,
> GROUP_CD
> )
> Select
> '55',
> left(GL06001,7),
> convert(Char(6),GL06002)+'552005'+convert(char(8),GL06016) ,
> GL06004,
> GL06005,
> GL06004,
> GL06003,
> substring(GL06001,22,2)
> from Inserted
>
> if (@@ERROR <> 0 )
> INSERT INTO UNPAID_TEMP (
> COMPANY_ID,
> ACCOUNT_ID,
> TRANSACTION_NUMBER,
> ENTRY_AMOUNT,
> DESCRIPTION,
> UNPAID_AMOUNT,
> DATE_TRANSACTION,
> GROUP_CD
> )
> SELECT
> '55',
> left(GL06001,7),
> convert(Char(6),GL06002)+'552005'+convert(char(8),GL06016) ,
> GL06004,
> GL06005,
> GL06004,
> GL06003,
> substring(GL06001,22,2)
> FROM Inserted
> else
> COMMIT TRANSACTION
>
>
>
>