sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan udløser man korrekt en insert til en linket sql-server?

Udfør indsættelser fra en trigger til en tabel på den linkede server - dårlig beslutning. Dette vil have stor indflydelse på indsætningsydelsen i kildetabellen ([dbo].[Tabel_1]), og der er også en distribueret transaktion, og konfiguration af servere til at understøtte distribuerede transaktioner - mareridt.

En mulig løsning er:

  1. På kildeserveren kan du oprette en synkroniseringskøtabel. For eksempel:

    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)
    )
    
  2. Triger på dbo.SourceTable kan hurtigt indsætte i dbo.SyncQueue record Nøgle, som du skal synkronisere

  3. En eller anden periodisk udført lagret procedure kan derefter indsætte poster fra køen intable på den linkede server.



  1. Find rækker, hvor tekstarray indeholder værdi svarende til input

  2. PHP:svarende til MySQL's funktion SUBSTRING_INDEX ?

  3. Forespørgsel med brudt undervalg burde resultere i fejl, men returnerer rækker

  4. Ændring af den næste dropdown-værdi med forrige dropdown ved ændringshændelse