Ange spridningsmetoden för dataändringar i transaktionsartiklar

gäller för:SQL ServerAzure SQL Managed Instance

Det här avsnittet beskriver hur du anger spridningsmetoden för dataändringar till transaktionsartiklar i SQL Server med hjälp av SQL Server Management Studio eller Transact-SQL.

Som standard sprider transaktionsreplikering ändringar till Prenumeranter med hjälp av en uppsättning lagrade procedurer för varje artikel. Du kan ersätta dessa procedurer med anpassade procedurer. Mer information finns i Ange hur ändringar sprids för transaktionsartiklar.

Begränsningar och restriktioner

  • Var försiktig när du redigerar någon av ögonblicksbildfilerna som genereras av replikeringen. Testa och stödja anpassad logik i de anpassade lagrade procedurerna. Microsoft stöder inte anpassad logik.

Använda SQL Server Management Studio

Ange spridningsmetoden på fliken Egenskaper i dialogrutan Artikelegenskaper – <artikel> , som är tillgänglig i guiden Ny publikation och dialogrutan Publikationsegenskaper – <Publikation> . Mer information om hur du använder guiden och hur du öppnar dialogrutan finns i Skapa en publikation och visa och ändra publikationsegenskaper.

Så här anger du spridningsmetoden

  1. På sidan Artiklar i guiden Ny publikation eller dialogrutan Publikationsegenskaper – <publikation> väljer du en tabell och väljer sedan Artikelegenskaper.

  2. Välj Ange egenskaper för markerad tabellartikel.

  3. På fliken Egenskaper i dialogrutan Artikelegenskaper – <artikel> anger du i avsnittet Instruktionsleverans spridningsmetoden för varje åtgärd med hjälp av menyerna INSERTleveransformat, UPDATEleveransformat och DELETEleveransformat.

  4. Välj OK.

  5. Om du är i dialogrutan Publikationsegenskaper – <Publikation> väljer du OK för att spara och stänga dialogrutan.

Skapa och använda anpassade lagrade procedurer

  1. På sidan Artiklar i guiden Ny publikation eller dialogrutan Publikationsegenskaper – <publikation> väljer du en tabell och väljer sedan Artikelegenskaper.

  2. Välj Ange egenskaper för markerad tabellartikel.

    På fliken Egenskaper i dialogrutan Artikelegenskaper – <artikel>, i avsnittet Instruktionsleverans, väljer du CALL-syntaxen på menyn för lämpligt leveransformat (INSERT leveransformat, UPDATE leveransformat eller DELETE leveransformat) och anger sedan namnet på den procedur som ska användas i INSERT lagrad procedur, DELETE lagrad procedur eller UPDATE lagrad procedur. Mer information om CALL-syntax finns i avsnittet "Anropssyntax för lagrade procedurer" i Ange hur ändringar sprids för transaktionsartiklar.

  3. Välj OK.

  4. Om du är i dialogrutan Publikationsegenskaper – <Publikation> väljer du OK för att spara och stänga dialogrutan.

  5. När ögonblicksbilden för publikationen genereras innehåller den proceduren som du angav i föregående steg. Procedurerna använder den CALL-syntax som du angav, men inkluderar standardlogik som replikering använder.

    När ögonblicksbilden har genererats navigerar du till mappen ögonblicksbild för den publikation som den här artikeln tillhör och letar reda på .sch-filen med samma namn som artikeln. Öppna den här filen med Anteckningar eller en annan textredigerare, leta upp CREATE PROCEDURE kommandot för infogning, uppdatering eller borttagning av lagrade procedurer och redigera procedurdefinitionen för att ange anpassad logik för att sprida dataändringar. Om ögonblicksbilden återskapas måste du återskapa den anpassade proceduren.

Använda Transact-SQL

Med transaktionsreplikering kan du styra hur ändringar sprids från Publisher till Prenumeranter, och den här spridningsmetoden kan anges programmatiskt när en artikel skapas och ändras senare med hjälp av lagrade replikeringsprocedurer.

Note

Du kan ange en annan spridningsmetod för varje typ av DML-åtgärd (datamanipuleringsspråk) (infoga, uppdatera eller ta bort) som inträffar på en rad med publicerade data.

Mer information finns i Ange hur ändringar sprids för transaktionsartiklar.

Skapa en artikel som använder Transact-SQL-kommandon för att sprida dataändringar

  1. Kör sp_addarticle på Publisher i publikationsdatabasen. Ange namnet på publikationen som artikeln tillhör för @publication, ett namn på artikeln för @article, databasobjektet som publiceras för @source_object och ett värde för SQL för minst en av följande parametrar:

    • @ins_cmd – styr replikeringen av INSERT kommandon.

    • @upd_cmd – styr replikeringen av UPDATE kommandon.

    • @del_cmd – styr replikeringen av DELETE kommandon.

    Note

    När du anger ett värde för SQL för någon av ovanstående parametrar replikeras kommandon av den typen till Prenumeranten som lämpligt Transact-SQL kommando.

    Mer information finns i Definiera en artikel.

Skapa en artikel som inte sprider dataändringar

  1. Kör sp_addarticle på Publisher i publikationsdatabasen. Ange namnet på publikationen som artikeln tillhör för @publication, ett namn på artikeln för @article, databasobjektet som publiceras för @source_object och värdet NONE för minst en av följande parametrar:

    • @ins_cmd – styr replikeringen av INSERT kommandon.

    • @upd_cmd – styr replikeringen av UPDATE kommandon.

    • @del_cmd – styr replikeringen av DELETE kommandon.

    Note

    När du anger värdet NONE för någon av ovanstående parametrar replikeras inte kommandon av den typen till prenumeranten.

    Mer information finns i Definiera en artikel.

Skapa en artikel med anpassade lagrade procedurer som har ändrats av användaren

  1. Kör sp_addarticle på Publisher i publikationsdatabasen. Ange namnet på publikationen som artikeln tillhör för @publication, ett namn på artikeln för @article, databasobjektet som publiceras för @source_object, ett värde för den @schema_option bitmask som innehåller värdet 0x02 (möjliggör automatisk generering av anpassade lagrade procedurer) och minst en av följande parametrar:

    • @ins_cmd – ange värdet CALL sp_MSins_article_name, där article_name är det värde som anges för @article.

    • @del_cmd – ange värdet CALL sp_MSdel_article_name eller XCALL sp_MSdel_article_name, där article_name är det värde som anges för @article.

    • @upd_cmd – ange värdet SCALL sp_MSupd_article_name, CALL sp_MSupd_article_name, XCALL sp_MSupd_article_name eller MCALL sp_MSupd_article_name, där article_name är det värde som anges för @article.

    Note

    För var och en av kommandoparametrarna ovan kan du ange ditt eget namn för de lagrade procedurer som replikeringen genererar.

    Note

    Mer information om CALL-, SCALL-, XCALL- och MCALL-syntax finns i Ange hur ändringar sprids för transaktionsartiklar.

    Mer information finns i Definiera en artikel.

  2. När ögonblicksbilden har genererats navigerar du till mappen ögonblicksbild för den publikation som den här artikeln tillhör och letar reda på .sch-filen med samma namn som artikeln. Öppna den här filen med Notepad.exe, leta upp CREATE PROCEDURE kommandot för infogning, uppdatering eller borttagning av lagrade procedurer och redigera procedurdefinitionen för att ange anpassad logik för att sprida dataändringar. Mer information finns i Ange hur ändringar sprids för transaktionsartiklar.

Skapa en artikel med anpassad skriptning i de anpassade lagrade procedurerna för att överföra dataändringar

  1. Kör sp_addarticle på Publisher i publikationsdatabasen. Ange namnet på publikationen som artikeln tillhör för @publication, ett namn på artikeln för @article, databasobjektet som publiceras för @source_object, ett värde för den @schema_option bitmask som innehåller värdet 0x02 (möjliggör automatisk generering av anpassade lagrade procedurer) och minst en av följande parametrar:

    • @ins_cmd – ange värdet CALL sp_MSins_article_name, där article_name är det värde som anges för @article.

    • @del_cmd – ange värdet CALL sp_MSdel_article_name eller XCALL sp_MSdel_article_name, där article_name är det värde som anges för @article.

    • @upd_cmd – ange värdet SCALL sp_MSupd_article_name, CALL sp_MSupd_article_name, XCALL sp_MSupd_article_name, MCALL sp_MSupd_article_name, där article_name är värdet som anges för @article.

    Note

    För var och en av kommandoparametrarna ovan kan du ange ditt eget namn för de lagrade procedurer som replikeringen genererar.

    Note

    Mer information om CALL-, SCALL-, XCALL- och MCALL-syntax finns i Ange hur ändringar sprids för transaktionsartiklar.

    Mer information finns i Definiera en artikel.

  2. På Publisher i publikationsdatabasen använder du instruktionen ALTER PROCEDURE för att redigera sp_scriptpublicationcustomprocs så att den returnerar ett CREATE PROCEDURE skript för procedurerna infoga, uppdatera och ta bort anpassade lagrade procedurer. Mer information finns i Ange hur ändringar sprids för transaktionsartiklar.

Så här ändrar du metoden för att sprida ändringar för en befintlig artikel

  1. Kör sp_changearticle på Publisher i publikationsdatabasen. Ange @publication, @article, värdet ins_cmd, upd_cmd eller del_cmd för @property och lämplig spridningsmetod för @value.

  2. Upprepa steg 1 för varje spridningsmetod som ska ändras.