Příkazy UPDATE může být replikovaný jako dvojice DELETE/INSERT

Překlady článku Překlady článku
ID článku: 238254 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Souhrn

Pokud sloupec, který je součástí jedinečného omezení aktualizován poté SQL Server implementuje aktualizace jako "odložené aktualizace", což znamená, že jako dvojici DELETE / INSERT operací. Tato "odložené aktualizace" způsobí replikaci odeslat dvojici DELETE / příkazy INSERT odběratelům. Jsou také jiných situacích může způsobit odložené aktualizace. Proto by měly obchodní logiky, které implementují v UPDATE aktivační události nebo vlastní uložené procedury u odběratele také být zahrnuty do DELETE / INSERT aktivační události nebo vlastní uložené procedury.

Další informace

Výchozí chování v transakční replikace je pomocí INSERT, UPDATE a DELETE vlastní uložené procedury použít změny na odběratelům.

Předplatitelé prostřednictvím INSERT uloženy volání procedury jsou použity příkazy INSERT provedené u vydavatele. Podobně je použit příkaz DELETE prostřednictvím volání DELETE uložené procedury.

Když příkaz UPDATE je spuštěn jako "odložené aktualizace", míst logreader agenta a dvojici DELETE / INSERT uložené procedury volá v distribuční databáze aplikovaný předplatitelé spíše než aktualizaci však uloženy volání procedury. Předpokládejme například, že máte publikování tabulku s názvem TABLE1, se tyto tři sloupce:
  • col1 int
  • col2 int
  • col3 varchar(30).
Pouze jedinečné omezení v TABLE1 je definován v col1 prostřednictvím omezení primárního klíče. Předpokládejme, že máte jeden záznam (1,1, ' Dallas').

Když tento kód spustit:
UPDATE TABLE1 set col1 = 3 where col2 = 'Dallas'
				
příkazu UPDATE je implementován jako dvojice DELETE serverem SQL / INSERT příkazy od aktualizujete col1, který má jedinečný index definovaný. Tedy logreader umístí dvojici DELETE / INSERT volá distribuční databáze. To může ovlivnit obchodní logika, která je k dispozici v aktivační události nebo vlastní uložené procedury u odběratele. Další obchodní logiky v aktivační události DELETE a INSERT nebo uložené procedury zpracování této situaci byste zahrnout.

Pokud dáváte použít jediný logiku a chcete, aby všechny vaše příkazy UPDATE replikovány jako DELETE / INSERT dvojice můžete povolit příznak trasování popsané v tomto článku znalostní báze Knowledge Base:
160181INF: Replikovat UPDATE jako dvojice DELETE/INSERT příznak trasování
Navíc pokud v publikaci použít vodorovné filtru a aktualizované řádku nesplňuje podmínku filtru, pouze DELETE volání procedury je odeslána odběratelům. Pokud aktualizované řádku dříve nesplňuje podmínku filtru, ale podmínce po aktualizaci, pouze INSERT volání procedury odeslána prostřednictvím procesu replikace.

V předchozím příkladu předpokládejme, že máte také vodorovné filtr definovaný v TABLE1: kde col2 = 'Dallas. Pokud spuštění tohoto kódu:
UPDATE table1 set col2 = 'New York' where col1 = 3
				
pouze míst logreader agent DELETE uloženy aplikovaný odběratelům od aktualizované řádku splňují kritéria filtru vodorovné volání procedury.

Nyní, pokud spustit tento kód:
UPDATE table1 set col2 = 'Dallas' where col1 = 3
				
logreader generuje jen volání procedury INSERT uloženy, protože řádek dříve nesplňuje podmínku filtru.

Ačkoli operace UPDATE byla provedena u vydavatele, příslušné příkazy použity u odběratele.

Odkazy

Pro SQL Server 2000 Service Pack 1 nebo novější naleznete v následujícím článku databáze Microsoft Knowledge Base:
302341INF: Nová příznak trasování povolení singleton aktualizace pro transakční replikace

Vlastnosti

ID článku: 238254 - Poslední aktualizace: 12. května 2008 - Revize: 6.2
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
Klíčová slova: 
kbmt kbinfo KB238254 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:238254

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com