Förmodligen har du hittat ett svar på din fråga vid det här laget. Detta svar är till för att hjälpa andra som kan snubbla över denna fråga. Här är ett möjligt alternativ som kan användas för att lösa dataöverföringen med SSIS. Jag antog att du fortfarande kan skapa anslutningssträngar som pekar på både dina servrar A och B från SSIS-paketet. Om det antagandet är fel, vänligen meddela mig så att jag kan radera det här svaret. I det här exemplet använder jag SQL Server 2008 R2 som back-end. Eftersom jag inte har två servrar har jag skapat två identiska tabeller i olika Schemas ServerA och ServerB .
Steg-för-steg-process:
-
I
Connection manageri SSIS, skapa två OLE DB-anslutningar, nämligen ServerA och ServerB . Det här exemplet pekar på samma server men i ditt scenario måste anslutningarna peka på dina två olika servrar. Se skärmbild #1 . -
Skapa två scheman
ServerAochServerB. Skapa tabellendbo.ItemInfoi båda schemana. Skapa skript för dessa tabeller finns under Skript sektion. Återigen, dessa objekt är endast för detta exempel. -
Jag har fyllt i båda tabellerna med några exempeldata. Tabell
ServerA.ItemInfoinnehåller2,222 rowsoch tabellenServerB.ItemInfoinnehåller10,000 rows. Enligt frågan, de saknade 7 778 rader ska överföras frånServerBtillServerA. Se skärmbild #2 . -
På SSIS-paketets kontrollflödesflik, placera en dataflödesuppgift som visas i skärmbild #3 .
-
Dubbelklicka på dataflödesuppgiften för att navigera till dataflödesfliken och konfigurera dataflödesuppgiften enligt beskrivningen nedan. Server B är en
OLE DB Source; Hitta post i Server A är enLookup transformation taskoch Server A är enOLE DB Destination. -
Konfigurera
OLE DB SourceServer B som visas i skärmdumpar #4 och #5 . -
Konfigurera
Lookup transformation taskHitta post i Server A som visas i skärmdump #6 - #8 . I det här exemplet är ItemId den unika nyckeln. Det är alltså den kolumn som används för att söka efter saknade poster mellan de två tabellerna. Eftersom vi bara behöver de rader som inte finns i Server A , måste vi välja alternativetRedirect rows to no match output. -
Placera en
OLE DB Destinationpå dataflödesuppgiften. När du ansluter uppslagstransformationsuppgiften med OLE DB-destination kommer du att uppmanas medInput Output Selectiondialog. VäljLookup No Match Outputfrån dialogrutan som visas i skärmbild #9 . KonfigureraOLE DB DestinationServer A som visas i skärmdumpar #10 och #11 . -
När dataflödesuppgiften är konfigurerad bör den se ut som visas i skärmbild #12 .
-
Exekvering av paketet visas i skärmbild #13 . Som du märker saknas
7,778 rowshar överförts frånServer BtillServer A. Se skärmbild #14 för att se antalet tabellposter efter paketkörningen. -
Eftersom kravet var att bara infoga de saknade posterna har detta tillvägagångssätt använts. Om du vill uppdatera befintliga poster och ta bort poster som inte längre är giltiga, se exemplet som jag har tillhandahållit i denna länk. SQL Integration Services för att ladda tabbseparerad fil? Exemplet i länken visar hur man överför en platt fil till SQL men den uppdaterar befintliga poster och tar bort ogiltiga poster. Exemplet är också finjusterat för att hantera ett stort antal rader.
Hoppas det hjälper.
Skript
.
CREATE SCHEMA [ServerA] AUTHORIZATION [dbo]
GO
CREATE SCHEMA [ServerB] AUTHORIZATION [dbo]
GO
CREATE TABLE [ServerA].[ItemInfo](
[Id] [int] IDENTITY(1,1) NOT NULL,
[ItemId] [varchar](255) NOT NULL,
[ItemName] [varchar](255) NOT NULL,
[ItemType] [varchar](255) NOT NULL,
CONSTRAINT [PK_ItemInfo] PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [UK_ItemInfo_ItemId] UNIQUE NONCLUSTERED ([ItemId] ASC)
) ON [PRIMARY]
GO
CREATE TABLE [ServerB].[ItemInfo](
[Id] [int] IDENTITY(1,1) NOT NULL,
[ItemId] [varchar](255) NOT NULL,
[ItemName] [varchar](255) NOT NULL,
[ItemType] [varchar](255) NOT NULL,
CONSTRAINT [PK_ItemInfo] PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [UK_ItemInfo_ItemId] UNIQUE NONCLUSTERED ([ItemId] ASC)
) ON [PRIMARY]
GO
Skärmdump #1:

Skärmdump #2:

Skärmdump #3:

Skärmdump #4:

Skärmdump #5:

Skärmdump #6:

Skärmdump #7:

Skärmdump #8:

Skärmdump #9:

Skärmdump #10:

Skärmdump #11:

Skärmdump #12:

Skärmdump #13:

Skärmdump #14:
