Esegui inserimenti da un trigger in una tabella sul server collegato - decisione sbagliata. Ciò influirà notevolmente sulle prestazioni di inserimento nella tabella di origine ([dbo].[Table_1]) e c'è anche una transazione distribuita e la configurazione dei server per supportare le transazioni distribuite - incubo.
Una possibile soluzione è:
-
Sul server di origine è possibile creare una tabella della coda di sincronizzazione. Ad esempio:
CREATE TABLE dbo.SyncQueue ( QueueId INT IDENTITY(1,1), KeyForSync INT, -- Primary key value of record in dbo.SourceTable SyncStatus INT -- statuses can be: 0 - New, 1 - Synchronized, 2 - Error ) suppose you source table is CREATE TABLE dbo.SourceTable ( Key INT, -- primary key of the table Data varchar(xxx) )
-
Triger su dbo.SourceTable può essere inserito rapidamente nel record dbo.SyncQueue Chiave che devi sincronizzare
- Alcune stored procedure eseguite periodicamente possono quindi inserire record dalla coda intable sul server collegato.