Hello, gelieve te helpen
Could iemand me hier, nieuw aan SSIS en materiaal ETL, heb ik ruwe gegevens die aan een SQL lijst worden opgevoerd, die ik dan me aan onze die productielijst wil bewegen en bijwerken/de verslagreeks opneem op een unieke opvoerende lijst key.
The heb een „SEQ“ rij die de verslagreeks identificeert, gebaseerd op SEQ wil ik de bestemmingslijst vergelijken en als SEQ bestaat, werk het gehele verslag bij of neem nieuwe otherwise.
I am gebruikend op SSIS om dit vanaf het beeld attached.
1 te verwezenlijken. Verbind Ole- OB Source 2. De de transformatieRedacteur van de raadpleging, en vormt foutenoutput om failure. 3 te negeren. Voorwaardelijke Split - neem de Voorwaarde van het Verslag op: ISNULL (Dest_SEQ) - werk de Voorwaarde van het Verslag bij: (Dest_TYP! = TYP) || (Dest_SALEDATE! = SALEDATE) || (Dest_INVOICED! = FACTUREERDE) || (Dest_WEEKDATE! = WEEKDATE) || (Dest_EWK! = EWK) || (Dest_ZWK! = ZWK) || (Dest_IY! = IY) || (Dest_WK! = Week) || (Dest_ROMO! = ROMO) || (Dest_ROYR! = ROYR) 4. Nieuwe Reords gaat naar Ole- OB Destination 5. De bijgewerkte verslagen gaan naar Het Bevel van ole- OB zoals zulke:
UPDATE dbo.sales SET TYP =? , SALEDATE =? , INVOICED =? , WEEKDATE =? , EWK =? , ZWK =? , IY =? , WK =? , ROMO =? , ROYR =? SEQ WHERE =? heeft de opvoerende lijst
The ongeveer 100 kolommen met gegevens, zodat ben ik niet zeker hoe aangewezen het een voorwaarde van het Verslag van de Update voor elke één van die moet bepalen, misschien zal mijn updateverslag zover als middel zeer duur zijn wanneer wij over 100.000 updates. spreken.
Is daar een manier ik dit kan veranderen zodat in een voorwaardelijke spleet (of gebruiken van iets anders) als SEQ opvoeren in bestemming bestaat, als het, gehele record.
The boven de werken te controleren bijwerken, maar ideaal gezien ik een primaire sleutel op mijn die SEQ lijst zou moeten tot stand brengen, en dan doend een update/een tussenvoegsel wordt gebaseerd op als de primaire sleutel of niet bestaat, hoe kon ik dit verwezenlijken?
op dit ogenblik, als ik SEQ aangezien een primaire sleutel op mijn lijst van de „verkoop“ bestemming, en re-run mijn SSIS plaatste ik een fout krijg:
An Ole- is het OB- verslag beschikbaar. Bron: De Inheemse Cliënt“ Hresult „van Microsoft SQL: 0x80004005 beschrijving: „Schending van PRIMAIRE ZEER BELANGRIJKE beperking „PK_sales_1“. Kan dubbele sleutel in voorwerp „dbo.sales“ opnemen niet.“.
But de lijst, waarom kan niet het de SEQ sleutel opnemen leeg is?
Thanks voor al uw gids help.
The die ik was heb gevolgd: http://vsteamsystemcentral .com/cs21/blogs/applied_business_intelligence/archive/2007/05/21/ssis-design-pattern-incremental-loads.aspx
" codeBody "
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
|
van de Staging lijst lay-out:
GEBRUIK [Verkoop]
CRE�ëR LIJST [dbo]. [stg_sales] (
[SEQ] [INT.] OM NIETIG TE VERKLAREN NIET,
[TYP] [varchar] (1) VERKLAART nietig,
[[Varchar] SALEDATE] (50) VERKLAAR nietig,
[GEFACTUREERD] [varchar] (50) VERKLAAR nietig,
[[Varchar] WEEKDATE] (50) VERKLAAR nietig,
[[Varchar] EWK] (50) VERKLAAR nietig,
[[Varchar] ZWK] (50) VERKLAAR nietig,
[[Varchar] IY] (50) VERKLAAR nietig,
[[Varchar] week] (50) VERKLAAR nietig,
[[Varchar] ROMO] (50) VERKLAAR nietig,
[[Varchar] ROYR] (50) VERKLAAR nietig,
[[Varchar] YRTD] (50) VERKLAAR nietig,
GA
De Lay-out van de Lijst van de bestemming:
GEBRUIK [Verkoop]
CRE�ëR LIJST [dbo]. [verkoop] (
[SEQ] [INT.] OM NIETIG TE VERKLAREN NIET,
[TYP] [varchar] (1) VERKLAART nietig,
[[Varchar] SALEDATE] (50) VERKLAAR nietig,
[GEFACTUREERD] [varchar] (50) VERKLAAR nietig,
[[Varchar] WEEKDATE] (50) VERKLAAR nietig,
[[Varchar] EWK] (50) VERKLAAR nietig,
[[Varchar] ZWK] (50) VERKLAAR nietig,
[[Varchar] IY] (50) VERKLAAR nietig,
[[Varchar] week] (50) VERKLAAR nietig,
[[Varchar] ROMO] (50) VERKLAAR nietig,
[[Varchar] ROYR] (50) VERKLAAR nietig,
[[Varchar] YRTD] (50) VERKLAAR nietig,
GA
|
|