Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure 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
På sidan Artiklar i guiden Ny publikation eller dialogrutan Publikationsegenskaper – <publikation> väljer du en tabell och väljer sedan Artikelegenskaper.
Välj Ange egenskaper för markerad tabellartikel.
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.
Välj OK.
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
På sidan Artiklar i guiden Ny publikation eller dialogrutan Publikationsegenskaper – <publikation> väljer du en tabell och väljer sedan Artikelegenskaper.
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.
Välj OK.
Om du är i dialogrutan Publikationsegenskaper – <Publikation> väljer du OK för att spara och stänga dialogrutan.
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
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
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
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.
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
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.
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
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.
Upprepa steg 1 för varje spridningsmetod som ska ändras.