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
Detta ämne beskriver hur man hanterar identitetskolumner i SQL Server genom att använda SQL Server Management Studio eller Transact-SQL. När Subscriber-inserts replikeras tillbaka till Publisher måste identitetskolumner hanteras för att undvika tilldelning av samma identitetsvärde både hos Subscriber och Publisher. Replikering kan hantera identitetsintervall automatiskt eller så kan du välja att manuellt hantera identitetsintervallhantering. För information om de alternativ för identitetsområdeshantering som tillhandahålls av replikering, se Replikera identitetskolumner.
Recommendations
När du publicerar en tabell i mer än en publikation måste du ange samma alternativ för hantering av identitetsintervall för båda publikationerna. För mer information, se "Publicera tabeller i mer än en publikation" i Publicera data och databasobjekt.
Information om hur du skapar ett automatiskt inkrementellt tal som kan användas i flera tabeller eller som kan anropas från program utan att referera till någon tabell finns i Sekvensnummer.
Använda SQL Server Management Studio
Ange ett alternativ för hantering av identitetskolumner under fliken Egenskaper i dialogrutan Artikel Egenskaper -< Artikel> i Ny publiceringsguiden. För mer information om att använda denna guide, se Skapa en publikation. I den nya publikationstrollkarlen:
Om du väljer Slå ihop publikation eller Transaktionell publikation med uppdatering av prenumerationer på sidan Publikationstyp , välj automatisk eller manuell identitetsområdeshantering (automatisk, standard, rekommenderas). Efter att tabellen har publicerats kan egenskapen inte ändras, men andra relaterade egenskaper kan ändras.
Om du väljer andra publikationstyper bör identitetsområdeshantering vara inställd på manuell.
Ändra identitetsintervall och tröskelvärden under fliken Egenskaper i Artikelegenskaper -< Artikel>, som finns i dialogrutan Publikationsegenskaper - <Publikation> . Mer information om hur du öppnar den här dialogrutan finns i Visa och ändra publikationsegenskaper.
För att specificera ett alternativ för hantering av identitetskolumner
Om utgivaren kör en version av SQL Server som är tidigare än SQL Server 2005 (9.x) väljer du sidan Publikationstyp i guiden Ny publikation och sedan Sammanslagningspublikation eller Transaktionspublikation med uppdateringsbara prenumerationer.
På sidan Artiklar , välj en tabell med en identitetskolumn.
Klicka på Artikelegenskaper och sedan på Sätt egenskaper för markerad tabellartikel.
På fliken Egenskaper i dialogrutan Artikel Egenskaper - <Artikel>, i avsnittet Identitetsområdeshantering, ställ in egenskapen Automatiskt hantera identitetsintervall till Automatisk eller Manuell (för utgivare som kör SQL Server 2005 (9.x) eller senare), eller Sant eller Falskt (för förlag som kör en version av SQL Server före SQL Server 2005 (9.x)).
Om du valde Automatisk eller Sann i steg 4, ange värden för alternativen i följande tabell. För mer information om hur dessa inställningar används, se avsnittet "Tilldela identitetsintervall" i Replikera identitetskolumner.
Option Value Description Utgivarens intervallstorlek Heltalsvärde för intervallstorlek (till exempel 20000). Se avsnittet "Tilldela identitetsintervall" i Replikera identitetskolumner. Abonnentstorlek Heltalsvärde för intervallstorlek (till exempel 10 000). Se avsnittet "Tilldela identitetsintervall" i Replikera identitetskolumner. Intervalltröskelprocent Heltalsvärde för procenttröskel (till exempel motsvarar 90 90 procent). Procentandel av totala identitetsvärden som används vid en nod innan ett nytt identitetsintervall tilldelas.
Observera: Detta värde måste specificeras, men används endast av: Prenumeranter som använder köade uppdateringsprenumerationer; och prenumeranter för att slå samman publikationer som kör SQL Server Compact eller tidigare versioner av andra SQL Server-utgåvor. Mer information finns i avsnittet "Tilldela identitetsintervall" i Replikera identitetskolumner.Startvärde för nästa intervall Heltalsvärde. Read-only. Värdet där nästa intervall startar. Till exempel, om det aktuella intervallet är 5001-6000, blir detta värde 6001. Maximalt identitetsvärde Heltalsvärde. Read-only. Det största värdet för identitetskolumnen. Bestäms av kolumnens basdatatyp. Increment Heltalsvärde. Read-only. Det värde med vilket värdet i identitetskolumnen ska öka eller minska vid varje infogning: vanligtvis satt till 1. Välj OK.
För att ändra identitetsintervall och tröskelvärden efter att en tabell har publicerats
På sidan Artiklar i dialogrutan Publikationsegenskaper - <Publikation> , välj en tabell med en identitetskolumn.
Klicka på Artikelegenskaper och sedan på Sätt egenskaper för markerad tabellartikel.
På fliken Egenskaper i dialogrutan Artikel Properties - <Artikel>, i avsnittet Identitetsintervallhantering, ange värden för en eller flera av följande egenskaper: Publisher intervallstorlek, Abonnentintervallstorlek och Intervalltröskelprocent.
Välj OK.
Klicka OK i dialogrutan Publikationsegenskaper - <Publikation> .
Använda Transact-SQL
Du kan använda replikationslagrade procedurer för att specificera alternativ för identitetsintervallhantering när en artikel skapas.
Att möjliggöra automatisk identitetsområdeshantering vid definiering av artiklar för en transaktionell publikation
Kör sp_addarticle på Publisher i publikationsdatabasen. Om källtabellen som publiceras har en identitetskolumn, ange ett värde auto för@identityrangemanagementoption, intervallet av identitetsvärden tilldelade Publisher för @pub_identity_range, intervallet av identitetsvärden tilldelade varje prenumerant för @identity_range, och procentandelen av totala identitetsvärden som används innan ett nytt identitetsintervall tilldelas för @threshold. Mer information om hur du definierar artiklar finns i Definiera en artikel.
Note
Säkerställ att datatypen i identitetskolumnen är tillräckligt stor för att stödja det totala intervallet av identiteter som tilldelas alla prenumeranter.
Att inaktivera automatisk identitetsområdeshantering vid definiering av artiklar för en transaktionell publikation
Kör sp_addarticle på Publisher i publikationsdatabasen. Ange värdet manual för @identityrangemanagementoption. Mer information om hur du definierar artiklar finns i Definiera en artikel.
Tilldela intervall till identitetsartikelkolumner på Prenumeranter för att undvika konflikter vid uppdatering av Prenumeranter. För mer information, se avsnittet om tilldelning av intervall för manuell hantering av identitetsintervall i ämnet Replikera identitetskolumner.
Att möjliggöra automatisk identitetsområdeshantering vid definiering av artiklar för en sammanslagningspublikation
Kör sp_addmergearticle hos Publishern i publiceringsdatabasen. Om källtabellen som publiceras har en identitetskolumn, ange ett värde auto för@identityrangemanagementoption, intervallet av identitetsvärden tilldelade en serverprenumeration för @pub_identity_range, intervallet av identitetsvärden som tilldelas Publisher och varje klientprenumeration för @identity_range, samt procentandelen av totala identitetsvärden som används innan ett nytt identitetsintervall tilldelas för @threshold. För mer information om när nya identitetsintervall tilldelas, se Tilldelning av identitetsintervall i ämnet Replikera identitetskolumner. Mer information om hur du definierar artiklar finns i Definiera en artikel.
Note
Säkerställ att datatypen i identitetskolumnen är tillräckligt stor för att stödja det totala intervallet av identiteter som tilldelas alla prenumeranter, särskilt för prenumeranter med serverprenumerationer.
Att inaktivera automatisk identitetsområdeshantering vid definiering av artiklar för en sammanslagningspublikation
Kör sp_addmergearticle hos Publishern i publiceringsdatabasen. Ange ett av följande värden för @identityrangemanagementoption:
manuell - Identitetsintervall måste tilldelas manuellt för att uppdatera prenumeranter.
ingen - Identitetskolumner hos Publisher kommer inte att definieras som identitetskolumner hos Subscriber.
Mer information om hur du definierar artiklar finns i Definiera en artikel.
Tilldela intervall till identitetsartikelkolumner på Prenumeranter för att undvika konflikter vid uppdatering av Prenumeranter.
Ändra inställningarna för automatisk hantering av identitetsintervall för en befintlig artikel i en ögonblicksbilds- eller transaktionspublikation
På utgivaren i publikationsdatabasen kör du sp_helparticle och noterar värdet för identityrangemanagementoption i resultatuppsättningen. Om detta värde är 0 är automatisk identitetsområdeshantering inte aktiverad.
Om värdet på identityrangemanagementoption i resultatuppsättningen är 1, ändra inställningarna enligt följande:
För att ändra de tilldelade identitetsintervallen, kör sp_changearticle på Publisher i publiceringsdatabasen. Ange värdet identity_range eller pub_identity_range för @property och det nya intervallvärdet för @value.
För att ändra tröskelvärdet där nya intervall tilldelas, kör sp_changearticle vid Publisher i publiceringsdatabasen. Ange ett tröskelvärde för @property och det nya tröskelvärdet för @value.
För att ändra automatiska inställningar för hantering av identitetsintervall för en befintlig artikel i en sammanslagningspublikation
Vid Publisher i publikationsdatabasen, kör sp_helpmergearticle och notera värdet av identity_support i resultatuppsättningen. Om detta värde är 0 är automatisk identitetsområdeshantering inte aktiverad.
Om värdet av identity_support i resultatmängden är 1, ändra inställningarna enligt följande:
För att ändra de tilldelade identitetsintervallen, kör sp_changemergearticle på Publisher i publiceringsdatabasen. Ange värdet identity_range eller pub_identity_range för @property och det nya intervallvärdet för @value.
För att ändra tröskelvärdet där nya intervall tilldelas, kör sp_changemergearticle vid Publisher i publikationsdatabasen. Ange ett tröskelvärde för @property och det nya tröskelvärdet för @value. För mer information om när nya identitetsintervall tilldelas, se Tilldelning av identitetsintervall i ämnet Replikera identitetskolumner.
För att inaktivera automatisk hantering av identitetsintervall, kör sp_changemergearticle på Publisher i publiceringsdatabasen. Ange ett värde av identityrangemanagementoption för @property och antingen manuellt eller inget för @value.