CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
BEGIN
SET XACT_ABORT ON
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
SET XACT_ABORT OFF
END
-----Message d'origine-----
Hello,
Vérifier que MSDTC (Distributed Transaction Coordinator)
sur le serveur A.
Vous pouvez aussi regarder cet article:
http://support.microsoft.com/?id06212
Cdlt
Fred
"transaction distribuée et MSDASQL"
wrote in message
Bonjour à tous,
J'ai deux serveurs SQL A et B, et je souhaiterais mettre à
jour des données d'une table sur B, à partir de données
d'une table de même structure sur B.
J'ai configuré sur A mon serveur B, comme étant un serveur
lié, et mon trigger attaché à ma table A est ainsi fait :
Citation:
CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
Je vérifie la syntaxe, pas de problème, puis j'applique.
Voici le message d'erreur que je reçois lorsque je modifie
la table "ma_table_A" sur laquelle j'ai créée mon trigger:
Citation:
"[Microsoft][ODBC SQL Server Driver][SQL Server][OLE/DB
provider returned message: [Microsoft][ODBC SQL Server
Driver] Erreur de transaction distribuée]
[Microsoft][ODBC SQL Server Driver][SQL Server]Trace de
l'erreur OLE DB [OLE/DB Provider 'MSDASQL' ITransactionJoi
Join Transaction returned 0x8004d00a].
[Microsoft][ODBC SQL Server Driver][SQL Server] L'opération
demandée ne peut pas être effectuée car le fournisseur OLE
DB 'MSDASQL' n'a pas réussi à démarrer de transaction
distribuée."
Donc, comme le confirme le message d'erreur, je me doute
qu'il s'agit d'un problème de transaction distribuée . J'ai
pourtant configurer mon serveur A pour qu'il accepte les
transactions distribuées.
Si quelqu'un avait une idée, elle serait bienvenue! Merci
d'avance.
.
CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
BEGIN
SET XACT_ABORT ON
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
SET XACT_ABORT OFF
END
-----Message d'origine-----
Hello,
Vérifier que MSDTC (Distributed Transaction Coordinator)
sur le serveur A.
Vous pouvez aussi regarder cet article:
http://support.microsoft.com/?id=306212
Cdlt
Fred
"transaction distribuée et MSDASQL"
wrote in message
Bonjour à tous,
J'ai deux serveurs SQL A et B, et je souhaiterais mettre à
jour des données d'une table sur B, à partir de données
d'une table de même structure sur B.
J'ai configuré sur A mon serveur B, comme étant un serveur
lié, et mon trigger attaché à ma table A est ainsi fait :
Citation:
CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
Je vérifie la syntaxe, pas de problème, puis j'applique.
Voici le message d'erreur que je reçois lorsque je modifie
la table "ma_table_A" sur laquelle j'ai créée mon trigger:
Citation:
"[Microsoft][ODBC SQL Server Driver][SQL Server][OLE/DB
provider returned message: [Microsoft][ODBC SQL Server
Driver] Erreur de transaction distribuée]
[Microsoft][ODBC SQL Server Driver][SQL Server]Trace de
l'erreur OLE DB [OLE/DB Provider 'MSDASQL' ITransactionJoi
Join Transaction returned 0x8004d00a].
[Microsoft][ODBC SQL Server Driver][SQL Server] L'opération
demandée ne peut pas être effectuée car le fournisseur OLE
DB 'MSDASQL' n'a pas réussi à démarrer de transaction
distribuée."
Donc, comme le confirme le message d'erreur, je me doute
qu'il s'agit d'un problème de transaction distribuée . J'ai
pourtant configurer mon serveur A pour qu'il accepte les
transactions distribuées.
Si quelqu'un avait une idée, elle serait bienvenue! Merci
d'avance.
.
CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
BEGIN
SET XACT_ABORT ON
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
SET XACT_ABORT OFF
END
-----Message d'origine-----
Hello,
Vérifier que MSDTC (Distributed Transaction Coordinator)
sur le serveur A.
Vous pouvez aussi regarder cet article:
http://support.microsoft.com/?id06212
Cdlt
Fred
"transaction distribuée et MSDASQL"
wrote in message
Bonjour à tous,
J'ai deux serveurs SQL A et B, et je souhaiterais mettre à
jour des données d'une table sur B, à partir de données
d'une table de même structure sur B.
J'ai configuré sur A mon serveur B, comme étant un serveur
lié, et mon trigger attaché à ma table A est ainsi fait :
Citation:
CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
Je vérifie la syntaxe, pas de problème, puis j'applique.
Voici le message d'erreur que je reçois lorsque je modifie
la table "ma_table_A" sur laquelle j'ai créée mon trigger:
Citation:
"[Microsoft][ODBC SQL Server Driver][SQL Server][OLE/DB
provider returned message: [Microsoft][ODBC SQL Server
Driver] Erreur de transaction distribuée]
[Microsoft][ODBC SQL Server Driver][SQL Server]Trace de
l'erreur OLE DB [OLE/DB Provider 'MSDASQL' ITransactionJoi
Join Transaction returned 0x8004d00a].
[Microsoft][ODBC SQL Server Driver][SQL Server] L'opération
demandée ne peut pas être effectuée car le fournisseur OLE
DB 'MSDASQL' n'a pas réussi à démarrer de transaction
distribuée."
Donc, comme le confirme le message d'erreur, je me doute
qu'il s'agit d'un problème de transaction distribuée . J'ai
pourtant configurer mon serveur A pour qu'il accepte les
transactions distribuées.
Si quelqu'un avait une idée, elle serait bienvenue! Merci
d'avance.
.
CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
BEGIN
SET XACT_ABORT ON
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
SET XACT_ABORT OFF
END
-----Message d'origine-----
Hello,
Vérifier que MSDTC (Distributed Transaction Coordinator)
sur le serveur A.
Vous pouvez aussi regarder cet article:
http://support.microsoft.com/?id06212
Cdlt
Fred
"transaction distribuée et MSDASQL"
wrote in message
Bonjour à tous,
J'ai deux serveurs SQL A et B, et je souhaiterais mettre à
jour des données d'une table sur B, à partir de données
d'une table de même structure sur B.
J'ai configuré sur A mon serveur B, comme étant un serveur
lié, et mon trigger attaché à ma table A est ainsi fait :
Citation:
CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
Je vérifie la syntaxe, pas de problème, puis j'applique.
Voici le message d'erreur que je reçois lorsque je modifie
la table "ma_table_A" sur laquelle j'ai créée mon trigger:
Citation:
"[Microsoft][ODBC SQL Server Driver][SQL Server][OLE/DB
provider returned message: [Microsoft][ODBC SQL Server
Driver] Erreur de transaction distribuée]
[Microsoft][ODBC SQL Server Driver][SQL Server]Trace de
l'erreur OLE DB [OLE/DB Provider 'MSDASQL' ITransactionJoi
Join Transaction returned 0x8004d00a].
[Microsoft][ODBC SQL Server Driver][SQL Server] L'opération
demandée ne peut pas être effectuée car le fournisseur OLE
DB 'MSDASQL' n'a pas réussi à démarrer de transaction
distribuée."
Donc, comme le confirme le message d'erreur, je me doute
qu'il s'agit d'un problème de transaction distribuée . J'ai
pourtant configurer mon serveur A pour qu'il accepte les
transactions distribuées.
Si quelqu'un avait une idée, elle serait bienvenue! Merci
d'avance.
.
CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
BEGIN
SET XACT_ABORT ON
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
SET XACT_ABORT OFF
END
-----Message d'origine-----
Hello,
Vérifier que MSDTC (Distributed Transaction Coordinator)
sur le serveur A.
Vous pouvez aussi regarder cet article:
http://support.microsoft.com/?id06212
Cdlt
Fred
"transaction distribuée et MSDASQL"
wrote in message
Bonjour à tous,
J'ai deux serveurs SQL A et B, et je souhaiterais mettre à
jour des données d'une table sur B, à partir de données
d'une table de même structure sur B.
J'ai configuré sur A mon serveur B, comme étant un serveur
lié, et mon trigger attaché à ma table A est ainsi fait :
Citation:
CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
Je vérifie la syntaxe, pas de problème, puis j'applique.
Voici le message d'erreur que je reçois lorsque je modifie
la table "ma_table_A" sur laquelle j'ai créée mon trigger:
Citation:
"[Microsoft][ODBC SQL Server Driver][SQL Server][OLE/DB
provider returned message: [Microsoft][ODBC SQL Server
Driver] Erreur de transaction distribuée]
[Microsoft][ODBC SQL Server Driver][SQL Server]Trace de
l'erreur OLE DB [OLE/DB Provider 'MSDASQL' ITransactionJoi
Join Transaction returned 0x8004d00a].
[Microsoft][ODBC SQL Server Driver][SQL Server] L'opération
demandée ne peut pas être effectuée car le fournisseur OLE
DB 'MSDASQL' n'a pas réussi à démarrer de transaction
distribuée."
Donc, comme le confirme le message d'erreur, je me doute
qu'il s'agit d'un problème de transaction distribuée . J'ai
pourtant configurer mon serveur A pour qu'il accepte les
transactions distribuées.
Si quelqu'un avait une idée, elle serait bienvenue! Merci
d'avance.
.
CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
BEGIN
SET XACT_ABORT ON
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
SET XACT_ABORT OFF
END
-----Message d'origine-----
Hello,
Vérifier que MSDTC (Distributed Transaction Coordinator)
sur le serveur A.
Vous pouvez aussi regarder cet article:
http://support.microsoft.com/?id06212
Cdlt
Fred
"transaction distribuée et MSDASQL"
wrote in message
Bonjour à tous,
J'ai deux serveurs SQL A et B, et je souhaiterais mettre à
jour des données d'une table sur B, à partir de données
d'une table de même structure sur B.
J'ai configuré sur A mon serveur B, comme étant un serveur
lié, et mon trigger attaché à ma table A est ainsi fait :
Citation:
CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
Je vérifie la syntaxe, pas de problème, puis j'applique.
Voici le message d'erreur que je reçois lorsque je modifie
la table "ma_table_A" sur laquelle j'ai créée mon trigger:
Citation:
"[Microsoft][ODBC SQL Server Driver][SQL Server][OLE/DB
provider returned message: [Microsoft][ODBC SQL Server
Driver] Erreur de transaction distribuée]
[Microsoft][ODBC SQL Server Driver][SQL Server]Trace de
l'erreur OLE DB [OLE/DB Provider 'MSDASQL' ITransactionJoi
Join Transaction returned 0x8004d00a].
[Microsoft][ODBC SQL Server Driver][SQL Server] L'opération
demandée ne peut pas être effectuée car le fournisseur OLE
DB 'MSDASQL' n'a pas réussi à démarrer de transaction
distribuée."
Donc, comme le confirme le message d'erreur, je me doute
qu'il s'agit d'un problème de transaction distribuée . J'ai
pourtant configurer mon serveur A pour qu'il accepte les
transactions distribuées.
Si quelqu'un avait une idée, elle serait bienvenue! Merci
d'avance.
.
-----Message d'origine-----
Pour savoir si un transaction existe dans ine base (pubs
dbcc opentran(pubs)
je ne vois pas bien le rapport avec enterprise manager?
L'opération s'effectue correctement sur les deux serveurs?
"alexandre" wrote in
news:327b01c4aba0$b5c28e00$
Merci beaucoup, j'ai vérifié dans les options des deux
gestionnaires de services par défaut, et DTC s'y trouve bien.
J'ai changé de technique et j'ai, à présent, déclaré sur B
mon serveur A comme étant lié. J'ai créé un trigger sur une
table en B.
Ansi, lors d'une modification de cette table, je n'ai plus
de message d'erreur, mais simplement, Entreprise Manager
qui ne répond plus ou bien se fige.
En vérifiant, j'ai l'impression que j'ai une transaction
qui débute mais ne s'arrete pas! :-(
voici mon code:CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
BEGIN
SET XACT_ABORT ON
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
SET XACT_ABORT OFF
END
Merci d'avance pour les éclairements que vous m'apporterez!
Alexandre-----Message d'origine-----
Hello,
Vérifier que MSDTC (Distributed Transaction Coordinator)
est bien démarrésur le serveur A.
Vous pouvez aussi regarder cet article:
http://support.microsoft.com/?id06212
Cdlt
Fred
"transaction distribuée et MSDASQL"wrote in message
news:409f01c4aae2$ff4be030$Bonjour à tous,
J'ai deux serveurs SQL A et B, et je souhaiterais mettre à
jour des données d'une table sur B, à partir de données
d'une table de même structure sur B.
J'ai configuré sur A mon serveur B, comme étant un serveur
lié, et mon trigger attaché à ma table A est ainsi fait :
Citation:
CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
Je vérifie la syntaxe, pas de problème, puis j'applique.
Voici le message d'erreur que je reçois lorsque je modifie
la table "ma_table_A" sur laquelle j'ai créée mon trigger:
Citation:
"[Microsoft][ODBC SQL Server Driver][SQL Server][OLE/DB
provider returned message: [Microsoft][ODBC SQL Server
Driver] Erreur de transaction distribuée]
[Microsoft][ODBC SQL Server Driver][SQL Server]Trace de
l'erreur OLE DB [OLE/DB Provider 'MSDASQL' ITransactionJoi
Join Transaction returned 0x8004d00a].
[Microsoft][ODBC SQL Server Driver][SQL Server] L'opération
demandée ne peut pas être effectuée car le fournisseur OLE
DB 'MSDASQL' n'a pas réussi à démarrer de transaction
distribuée."
Donc, comme le confirme le message d'erreur, je me doute
qu'il s'agit d'un problème de transaction distribuée . J'ai
pourtant configurer mon serveur A pour qu'il accepte les
transactions distribuées.
Si quelqu'un avait une idée, elle serait bienvenue! Merci
d'avance.
.
.
-----Message d'origine-----
Pour savoir si un transaction existe dans ine base (pubs
dbcc opentran(pubs)
je ne vois pas bien le rapport avec enterprise manager?
L'opération s'effectue correctement sur les deux serveurs?
"alexandre" <anonymous@discussions.microsoft.com> wrote in
news:327b01c4aba0$b5c28e00$a501280a@phx.gbl...
Merci beaucoup, j'ai vérifié dans les options des deux
gestionnaires de services par défaut, et DTC s'y trouve bien.
J'ai changé de technique et j'ai, à présent, déclaré sur B
mon serveur A comme étant lié. J'ai créé un trigger sur une
table en B.
Ansi, lors d'une modification de cette table, je n'ai plus
de message d'erreur, mais simplement, Entreprise Manager
qui ne répond plus ou bien se fige.
En vérifiant, j'ai l'impression que j'ai une transaction
qui débute mais ne s'arrete pas! :-(
voici mon code:
CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
BEGIN
SET XACT_ABORT ON
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
SET XACT_ABORT OFF
END
Merci d'avance pour les éclairements que vous m'apporterez!
Alexandre
-----Message d'origine-----
Hello,
Vérifier que MSDTC (Distributed Transaction Coordinator)
est bien démarré
sur le serveur A.
Vous pouvez aussi regarder cet article:
http://support.microsoft.com/?id=306212
Cdlt
Fred
"transaction distribuée et MSDASQL"
<anonymous@discussions.microsoft.com>
wrote in message
news:409f01c4aae2$ff4be030$a401280a@phx.gbl...
Bonjour à tous,
J'ai deux serveurs SQL A et B, et je souhaiterais mettre à
jour des données d'une table sur B, à partir de données
d'une table de même structure sur B.
J'ai configuré sur A mon serveur B, comme étant un serveur
lié, et mon trigger attaché à ma table A est ainsi fait :
Citation:
CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
Je vérifie la syntaxe, pas de problème, puis j'applique.
Voici le message d'erreur que je reçois lorsque je modifie
la table "ma_table_A" sur laquelle j'ai créée mon trigger:
Citation:
"[Microsoft][ODBC SQL Server Driver][SQL Server][OLE/DB
provider returned message: [Microsoft][ODBC SQL Server
Driver] Erreur de transaction distribuée]
[Microsoft][ODBC SQL Server Driver][SQL Server]Trace de
l'erreur OLE DB [OLE/DB Provider 'MSDASQL' ITransactionJoi
Join Transaction returned 0x8004d00a].
[Microsoft][ODBC SQL Server Driver][SQL Server] L'opération
demandée ne peut pas être effectuée car le fournisseur OLE
DB 'MSDASQL' n'a pas réussi à démarrer de transaction
distribuée."
Donc, comme le confirme le message d'erreur, je me doute
qu'il s'agit d'un problème de transaction distribuée . J'ai
pourtant configurer mon serveur A pour qu'il accepte les
transactions distribuées.
Si quelqu'un avait une idée, elle serait bienvenue! Merci
d'avance.
.
.
-----Message d'origine-----
Pour savoir si un transaction existe dans ine base (pubs
dbcc opentran(pubs)
je ne vois pas bien le rapport avec enterprise manager?
L'opération s'effectue correctement sur les deux serveurs?
"alexandre" wrote in
news:327b01c4aba0$b5c28e00$
Merci beaucoup, j'ai vérifié dans les options des deux
gestionnaires de services par défaut, et DTC s'y trouve bien.
J'ai changé de technique et j'ai, à présent, déclaré sur B
mon serveur A comme étant lié. J'ai créé un trigger sur une
table en B.
Ansi, lors d'une modification de cette table, je n'ai plus
de message d'erreur, mais simplement, Entreprise Manager
qui ne répond plus ou bien se fige.
En vérifiant, j'ai l'impression que j'ai une transaction
qui débute mais ne s'arrete pas! :-(
voici mon code:CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
BEGIN
SET XACT_ABORT ON
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
SET XACT_ABORT OFF
END
Merci d'avance pour les éclairements que vous m'apporterez!
Alexandre-----Message d'origine-----
Hello,
Vérifier que MSDTC (Distributed Transaction Coordinator)
est bien démarrésur le serveur A.
Vous pouvez aussi regarder cet article:
http://support.microsoft.com/?id06212
Cdlt
Fred
"transaction distribuée et MSDASQL"wrote in message
news:409f01c4aae2$ff4be030$Bonjour à tous,
J'ai deux serveurs SQL A et B, et je souhaiterais mettre à
jour des données d'une table sur B, à partir de données
d'une table de même structure sur B.
J'ai configuré sur A mon serveur B, comme étant un serveur
lié, et mon trigger attaché à ma table A est ainsi fait :
Citation:
CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
Je vérifie la syntaxe, pas de problème, puis j'applique.
Voici le message d'erreur que je reçois lorsque je modifie
la table "ma_table_A" sur laquelle j'ai créée mon trigger:
Citation:
"[Microsoft][ODBC SQL Server Driver][SQL Server][OLE/DB
provider returned message: [Microsoft][ODBC SQL Server
Driver] Erreur de transaction distribuée]
[Microsoft][ODBC SQL Server Driver][SQL Server]Trace de
l'erreur OLE DB [OLE/DB Provider 'MSDASQL' ITransactionJoi
Join Transaction returned 0x8004d00a].
[Microsoft][ODBC SQL Server Driver][SQL Server] L'opération
demandée ne peut pas être effectuée car le fournisseur OLE
DB 'MSDASQL' n'a pas réussi à démarrer de transaction
distribuée."
Donc, comme le confirme le message d'erreur, je me doute
qu'il s'agit d'un problème de transaction distribuée . J'ai
pourtant configurer mon serveur A pour qu'il accepte les
transactions distribuées.
Si quelqu'un avait une idée, elle serait bienvenue! Merci
d'avance.
.
.
-----Message d'origine-----
Je vous remercie de cette commande que je ne connaissais
pas! (je débute en SQL Server :-) )
Alors le rapport avec Entreprise Manager, c'est que
j'utilise l'invite graphique pour modifier et insérer des
champs dans ma table qui contient le trigger, mais quand je
ferme la fenêtre de "modification de la table" dans
laquelle j'ai insérée une nouvelle ligne par exemple, là,
Entreprise Manager n'est pas content et ne réponds plus.
Ceci est donc dû au fait qu'il execute une transaction et
ne la termine pas!!! En effet, en tapant "dbcc
opentran(ma_table)" dans l'analyseur de requetes, suite au
"blocage" de Entreprise Manager, j'obtiens qu'il y a une
transaction qui a pour nom "implicit_transaction", avec une
heure de début mais pas d'heure de fin!
Je suppose donc que mon trigger déclenche une transaction
qui ne s'arrete pas, sauf en rebootant le serveur!-----Message d'origine-----
Pour savoir si un transaction existe dans ine base (pubs
par exemple)
dbcc opentran(pubs)
je ne vois pas bien le rapport avec enterprise manager?
L'opération s'effectue correctement sur les deux serveurs?
"alexandre" wrote in
messagenews:327b01c4aba0$b5c28e00$
Merci beaucoup, j'ai vérifié dans les options des deux
gestionnaires de services par défaut, et DTC s'y trouve bien.
J'ai changé de technique et j'ai, à présent, déclaré sur B
mon serveur A comme étant lié. J'ai créé un trigger sur une
table en B.
Ansi, lors d'une modification de cette table, je n'ai plus
de message d'erreur, mais simplement, Entreprise Manager
qui ne répond plus ou bien se fige.
En vérifiant, j'ai l'impression que j'ai une transaction
qui débute mais ne s'arrete pas! :-(
voici mon code:CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
BEGIN
SET XACT_ABORT ON
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
SET XACT_ABORT OFF
END
Merci d'avance pour les éclairements que vous m'apporterez!
Alexandre-----Message d'origine-----
Hello,
Vérifier que MSDTC (Distributed Transaction Coordinator)
est bien démarrésur le serveur A.
Vous pouvez aussi regarder cet article:
http://support.microsoft.com/?id06212
Cdlt
Fred
"transaction distribuée et MSDASQL"wrote in message
news:409f01c4aae2$ff4be030$Bonjour à tous,
J'ai deux serveurs SQL A et B, et je souhaiterais mettre à
jour des données d'une table sur B, à partir de données
d'une table de même structure sur B.
J'ai configuré sur A mon serveur B, comme étant un serveur
lié, et mon trigger attaché à ma table A est ainsi fait :
Citation:
CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
Je vérifie la syntaxe, pas de problème, puis j'applique.
Voici le message d'erreur que je reçois lorsque je modifie
la table "ma_table_A" sur laquelle j'ai créée mon trigger:
Citation:
"[Microsoft][ODBC SQL Server Driver][SQL Server][OLE/DB
provider returned message: [Microsoft][ODBC SQL Server
Driver] Erreur de transaction distribuée]
[Microsoft][ODBC SQL Server Driver][SQL Server]Trace de
l'erreur OLE DB [OLE/DB Provider 'MSDASQL' ITransactionJoi
Join Transaction returned 0x8004d00a].
[Microsoft][ODBC SQL Server Driver][SQL Server] L'opération
demandée ne peut pas être effectuée car le fournisseur OLE
DB 'MSDASQL' n'a pas réussi à démarrer de transaction
distribuée."
Donc, comme le confirme le message d'erreur, je me doute
qu'il s'agit d'un problème de transaction distribuée . J'ai
pourtant configurer mon serveur A pour qu'il accepte les
transactions distribuées.
Si quelqu'un avait une idée, elle serait bienvenue! Merci
d'avance.
.
.
.
-----Message d'origine-----
Je vous remercie de cette commande que je ne connaissais
pas! (je débute en SQL Server :-) )
Alors le rapport avec Entreprise Manager, c'est que
j'utilise l'invite graphique pour modifier et insérer des
champs dans ma table qui contient le trigger, mais quand je
ferme la fenêtre de "modification de la table" dans
laquelle j'ai insérée une nouvelle ligne par exemple, là,
Entreprise Manager n'est pas content et ne réponds plus.
Ceci est donc dû au fait qu'il execute une transaction et
ne la termine pas!!! En effet, en tapant "dbcc
opentran(ma_table)" dans l'analyseur de requetes, suite au
"blocage" de Entreprise Manager, j'obtiens qu'il y a une
transaction qui a pour nom "implicit_transaction", avec une
heure de début mais pas d'heure de fin!
Je suppose donc que mon trigger déclenche une transaction
qui ne s'arrete pas, sauf en rebootant le serveur!
-----Message d'origine-----
Pour savoir si un transaction existe dans ine base (pubs
par exemple)
dbcc opentran(pubs)
je ne vois pas bien le rapport avec enterprise manager?
L'opération s'effectue correctement sur les deux serveurs?
"alexandre" <anonymous@discussions.microsoft.com> wrote in
message
news:327b01c4aba0$b5c28e00$a501280a@phx.gbl...
Merci beaucoup, j'ai vérifié dans les options des deux
gestionnaires de services par défaut, et DTC s'y trouve bien.
J'ai changé de technique et j'ai, à présent, déclaré sur B
mon serveur A comme étant lié. J'ai créé un trigger sur une
table en B.
Ansi, lors d'une modification de cette table, je n'ai plus
de message d'erreur, mais simplement, Entreprise Manager
qui ne répond plus ou bien se fige.
En vérifiant, j'ai l'impression que j'ai une transaction
qui débute mais ne s'arrete pas! :-(
voici mon code:
CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
BEGIN
SET XACT_ABORT ON
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
SET XACT_ABORT OFF
END
Merci d'avance pour les éclairements que vous m'apporterez!
Alexandre
-----Message d'origine-----
Hello,
Vérifier que MSDTC (Distributed Transaction Coordinator)
est bien démarré
sur le serveur A.
Vous pouvez aussi regarder cet article:
http://support.microsoft.com/?id=306212
Cdlt
Fred
"transaction distribuée et MSDASQL"
<anonymous@discussions.microsoft.com>
wrote in message
news:409f01c4aae2$ff4be030$a401280a@phx.gbl...
Bonjour à tous,
J'ai deux serveurs SQL A et B, et je souhaiterais mettre à
jour des données d'une table sur B, à partir de données
d'une table de même structure sur B.
J'ai configuré sur A mon serveur B, comme étant un serveur
lié, et mon trigger attaché à ma table A est ainsi fait :
Citation:
CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
Je vérifie la syntaxe, pas de problème, puis j'applique.
Voici le message d'erreur que je reçois lorsque je modifie
la table "ma_table_A" sur laquelle j'ai créée mon trigger:
Citation:
"[Microsoft][ODBC SQL Server Driver][SQL Server][OLE/DB
provider returned message: [Microsoft][ODBC SQL Server
Driver] Erreur de transaction distribuée]
[Microsoft][ODBC SQL Server Driver][SQL Server]Trace de
l'erreur OLE DB [OLE/DB Provider 'MSDASQL' ITransactionJoi
Join Transaction returned 0x8004d00a].
[Microsoft][ODBC SQL Server Driver][SQL Server] L'opération
demandée ne peut pas être effectuée car le fournisseur OLE
DB 'MSDASQL' n'a pas réussi à démarrer de transaction
distribuée."
Donc, comme le confirme le message d'erreur, je me doute
qu'il s'agit d'un problème de transaction distribuée . J'ai
pourtant configurer mon serveur A pour qu'il accepte les
transactions distribuées.
Si quelqu'un avait une idée, elle serait bienvenue! Merci
d'avance.
.
.
.
-----Message d'origine-----
Je vous remercie de cette commande que je ne connaissais
pas! (je débute en SQL Server :-) )
Alors le rapport avec Entreprise Manager, c'est que
j'utilise l'invite graphique pour modifier et insérer des
champs dans ma table qui contient le trigger, mais quand je
ferme la fenêtre de "modification de la table" dans
laquelle j'ai insérée une nouvelle ligne par exemple, là,
Entreprise Manager n'est pas content et ne réponds plus.
Ceci est donc dû au fait qu'il execute une transaction et
ne la termine pas!!! En effet, en tapant "dbcc
opentran(ma_table)" dans l'analyseur de requetes, suite au
"blocage" de Entreprise Manager, j'obtiens qu'il y a une
transaction qui a pour nom "implicit_transaction", avec une
heure de début mais pas d'heure de fin!
Je suppose donc que mon trigger déclenche une transaction
qui ne s'arrete pas, sauf en rebootant le serveur!-----Message d'origine-----
Pour savoir si un transaction existe dans ine base (pubs
par exemple)
dbcc opentran(pubs)
je ne vois pas bien le rapport avec enterprise manager?
L'opération s'effectue correctement sur les deux serveurs?
"alexandre" wrote in
messagenews:327b01c4aba0$b5c28e00$
Merci beaucoup, j'ai vérifié dans les options des deux
gestionnaires de services par défaut, et DTC s'y trouve bien.
J'ai changé de technique et j'ai, à présent, déclaré sur B
mon serveur A comme étant lié. J'ai créé un trigger sur une
table en B.
Ansi, lors d'une modification de cette table, je n'ai plus
de message d'erreur, mais simplement, Entreprise Manager
qui ne répond plus ou bien se fige.
En vérifiant, j'ai l'impression que j'ai une transaction
qui débute mais ne s'arrete pas! :-(
voici mon code:CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
BEGIN
SET XACT_ABORT ON
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
SET XACT_ABORT OFF
END
Merci d'avance pour les éclairements que vous m'apporterez!
Alexandre-----Message d'origine-----
Hello,
Vérifier que MSDTC (Distributed Transaction Coordinator)
est bien démarrésur le serveur A.
Vous pouvez aussi regarder cet article:
http://support.microsoft.com/?id06212
Cdlt
Fred
"transaction distribuée et MSDASQL"wrote in message
news:409f01c4aae2$ff4be030$Bonjour à tous,
J'ai deux serveurs SQL A et B, et je souhaiterais mettre à
jour des données d'une table sur B, à partir de données
d'une table de même structure sur B.
J'ai configuré sur A mon serveur B, comme étant un serveur
lié, et mon trigger attaché à ma table A est ainsi fait :
Citation:
CREATE TRIGGER [trigger1] ON [dbo].[ma_table_A]
FOR INSERT, UPDATE, DELETE
AS
if (columns_updated() & 3)>0
begin
insert into [mon_serveur_B].[ma_base_B].[dbo].[ma_table_B]
select mon_champ_1, mon_champ_2 from inserted
end
Je vérifie la syntaxe, pas de problème, puis j'applique.
Voici le message d'erreur que je reçois lorsque je modifie
la table "ma_table_A" sur laquelle j'ai créée mon trigger:
Citation:
"[Microsoft][ODBC SQL Server Driver][SQL Server][OLE/DB
provider returned message: [Microsoft][ODBC SQL Server
Driver] Erreur de transaction distribuée]
[Microsoft][ODBC SQL Server Driver][SQL Server]Trace de
l'erreur OLE DB [OLE/DB Provider 'MSDASQL' ITransactionJoi
Join Transaction returned 0x8004d00a].
[Microsoft][ODBC SQL Server Driver][SQL Server] L'opération
demandée ne peut pas être effectuée car le fournisseur OLE
DB 'MSDASQL' n'a pas réussi à démarrer de transaction
distribuée."
Donc, comme le confirme le message d'erreur, je me doute
qu'il s'agit d'un problème de transaction distribuée . J'ai
pourtant configurer mon serveur A pour qu'il accepte les
transactions distribuées.
Si quelqu'un avait une idée, elle serait bienvenue! Merci
d'avance.
.
.
.