Effectuer des insertions à partir d'un déclencheur dans une table sur un serveur lié - mauvaise décision. Cela affectera grandement les performances d'insertion dans la table source ([dbo]. [Table_1]) et il existe également une transaction distribuée et la configuration des serveurs pour prendre en charge les transactions distribuées - cauchemar.
Une solution possible est :
-
Sur le serveur source, vous pouvez créer une table de file d'attente de synchronisation. Par exemple :
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) )
-
Le déclencheur sur dbo.SourceTable peut rapidement insérer dans la clé d'enregistrement dbo.SyncQueue que vous devez synchroniser
- Certaines procédures stockées exécutées périodiquement peuvent ensuite insérer des enregistrements de la file d'attente dans la table sur le serveur lié.