Foreach-loopbehållare
gäller för:SQL Server SSIS Integration Runtime i Azure Data Factory
Foreach Loop-containern definierar ett upprepande kontrollflöde i ett paket. Loopimplementeringen liknar Foreach loopstruktur i programmeringsspråk. I ett paket aktiveras loopning med hjälp av en Foreach-uppräknare. Foreach Loop-containern upprepar kontrollflödet för varje medlem i en angiven uppräknare.
SQL Server Integration Services tillhandahåller följande uppräkningstyper:
Foreach ADO-enumerator för att enumerera rader i tabeller. Du kan till exempel hämta raderna i en ADO-postuppsättning.
Postmängd-destinationen sparar data i minnet i en postuppsättning som lagras i ett paketvariabel av datatypen Objekt. Du använder vanligtvis en Foreach Loop-container med Foreach ADO-uppräknaren för att bearbeta en rad i postuppsättningen i taget. Variabeln som anges för Foreach ADO-uppräknaren måste vara av objektdatatyp. Mer information om Recordset-destinationen finns under Använd en Recordset-destination.
Foreach ADO.NET Schema Rowset-uppräknare för att räkna upp schemainformation om en datakälla. Du kan till exempel räkna upp och hämta en lista över tabellerna i SQL Server-databasen AdventureWorks2022.
Foreach File enumerator för att räkna upp filer i en mapp. Uppräknaren kan genomsöka undermappar. Du kan till exempel läsa alla filer som har filnamnstillägget *.log i Windows-mappen och dess undermappar. Observera att det inte går att ange i vilken ordning filerna hämtas.
Foreach From Variable enumerator för att räkna upp det uppräkningsbara objekt som en angiven variabel innehåller. Det uppräkningsbara objektet kan vara en matris, en ADO.NET DataTable, en Integration Services-uppräknare och så vidare. Du kan till exempel räkna upp värdena för en matris som innehåller namnet på servrarna.
Förgrena objektuppräkning för att räkna upp objekt som är samlingar. Du kan till exempel räkna upp namnen på körbara filer och arbetskataloger som en körningsprocessaktivitet använder.
Foreach Nodelist-uppräknare för att räkna upp resultatuppsättningen för ett XPath-uttryck (XML Path Language). Det här uttrycket räknar till exempel upp och hämtar en lista över alla författare i den klassiska perioden:
/authors/author[@period='classical']
.Foreach SMO-uppräknare för att räkna upp SMO-objekt (SQL Server Management Objects). Du kan till exempel räkna upp och hämta en lista över vyerna i en SQL Server-databas.
Foreach HDFS File Enumerator för att räkna upp HDFS-filer på den angivna HDFS-platsen.
Foreach Azure Blob-uppräkning för att räkna upp blobar i en blobcontainer i Azure Storage.
Foreach ADLS-filuppräknare för att räkna upp filer i en katalog i Azure Data Lake Store.
Foreach Data Lake Storage Gen2-filuppräknare för att enumerera filer i en mapp i Azure Data Lake Store Gen2.
Följande diagram visar en Foreach Loop-container som har en filsystemaktivitet. Foreach-loopen använder Foreach-filuppräknaren och filsystemaktiviteten är konfigurerad för att kopiera en fil. Om mappen som uppräknaren anger innehåller fyra filer upprepas loopen fyra gånger och fyra filer kopieras.
Du kan använda en kombination av variabler och egenskapsuttryck för att uppdatera egenskapen för paketobjektet med värdet från uppräkningssamlingen. Först mappar du samlingsvärdet till en användardefinierad variabel och sedan implementerar du ett egenskapsuttryck på egenskapen som använder variabeln. Samlingsvärdet för Foreach-filuppräknaren mappas till en variabel med namnet MyFile och variabeln används sedan i egenskapsuttrycket för egenskapen Ämne för en Send Mail-uppgift. När paketet körs uppdateras ämnesegenskapen med namnet på en fil varje gång loopen upprepas. Mer information finns i Använda egenskapsuttryck i Paket.
Variabler som mappas till uppräkningssamlingsvärdet kan också användas i uttryck och skript.
En Foreach Loop-container kan innehålla flera uppgifter och containrar, men den kan bara använda en typ av uppräknare. Om Foreach Loop-containern innehåller flera uppgifter kan du mappa uppräkningssamlingsvärdet till flera egenskaper för varje aktivitet.
Du kan ange ett transaktionsattribut i Foreach Loop-containern för att definiera en transaktion för en delmängd av paketkontrollflödet. På så sätt kan du hantera transaktioner på foreach-loopens nivå i stället för paketnivån. Om till exempel en Foreach Loop-container upprepar ett kontrollflöde som uppdaterar dimensioner och faktatabeller i ett star-schema kan du konfigurera en transaktion för att säkerställa att alla faktatabeller uppdateras korrekt eller att inga uppdateras. Mer information finns i Integration Services-transaktioner.
Uppräkningstyper
Uppräknare kan konfigureras och du måste ange annan information, beroende på uppräknaren.
I följande tabell sammanfattas den information som varje uppräkningstyp kräver.
Uppräknare | Konfigurationskrav |
---|---|
Foreach ADO | Ange källvariabeln för ADO-objektet och uppräkningsläget. Variabeln måste vara av objektdatatyp. |
Foreach ADO.NET schemaraduppsättning | Ange anslutningen till en databas och schemat som ska räknas upp. |
Foreach-fil | Ange en mapp och de filer som ska räknas upp, formatet på filnamnet för de hämtade filerna och om du vill bläddra i undermappar. |
Foreach från variabel | Ange variabeln som innehåller de objekt som ska räknas upp. |
Förgrena objekt | Definiera objekten i Samlingen Foreach-objekt, inklusive kolumner och kolumndatatyper. |
Foreach Nodelist | Ange källan för XML-dokumentet och konfigurera XPath-åtgärden. |
Förgrena SMO | Ange anslutningen till en databas och de SMO-objekt som ska räknas upp. |
Foreach HDFS-filuppräkning | Ange en mapp och de filer som ska räknas upp, formatet på filnamnet för de hämtade filerna och om du vill bläddra i undermappar. |
Foreach Azure Blob | Ange den Azure Blob Storage-container som innehåller blobar som ska räknas upp. |
Foreach ADLS-fil | Ange den Azure Data Lake Store-katalog som innehåller de filer som ska räknas upp. |
Foreach Data Lake Storage Gen2-fil | Ange katalogen Azure Data Lake Storage Gen2 som innehåller de filer som ska räknas upp, tillsammans med andra alternativ. |
Lägga till uppräkning i ett kontrollflöde med en Foreach Loop-container
Integration Services innehåller Foreach Loop-containern, ett kontrollflödeselement som gör det enkelt att inkludera en loopkonstruktion som räknar upp filer och objekt i kontrollflödet i ett paket. Mer information finns i Foreach Loop Container.
Foreach Loop-containern innehåller inga funktioner. Den innehåller bara den struktur där du skapar det repeterbara kontrollflödet, anger en uppräkningstyp och konfigurerar uppräknaren. Om du vill tillhandahålla containerfunktioner måste du inkludera minst en uppgift i Foreach Loop-containern. Mer information finns i Integration Services-uppgifter.
Foreach Loop-containern kan innehålla ett kontrollflöde med flera uppgifter och andra containrar. Att lägga till uppgifter och containrar i en Foreach Loop-container liknar att lägga till dem i ett paket, förutom att du drar aktiviteterna och containrarna till Foreach Loop-containern i stället för till paketet. Om Foreach Loop-containern innehåller mer än en uppgift eller container kan du ansluta dem med prioritetsbegränsningar precis som du gör i ett paket. Mer information finns i Prioritetsbegränsningar.
Lägga till och konfigurera en Foreach Loop-container
Lägg till Foreach Loop-containern i paketet. Mer information finns i Lägga till eller ta bort en uppgift eller en container i ett kontrollflöde.
Lägg till uppgifter och containrar i Foreach Loop-containern. Mer information finns i Lägga till eller ta bort en uppgift eller en container i ett kontrollflöde.
Anslut uppgifter och containrar i Foreach Loop-containern med prioritetsbegränsningar. För mer information, se Ansluta uppgifter och containrar med hjälp av en standardföreträdesbegränsning.
Konfigurera Foreach Loop-container. Mer information finns i Konfigurera en Foreach-loopcontainer.
Konfigurera en Foreach-loop-behållare
Den här proceduren beskriver hur du konfigurerar en Foreach Loop-container, inklusive egenskapsuttryck på uppräknings- och containernivå.
I SQL Server Data Tools (SSDT) öppnar du projektet Integration Services som innehåller det paket du vill ha.
Klicka på fliken Kontrollflöde och dubbelklicka på Foreach-loopen.
I dialogrutan Foreach Loop Editor klickar du på Allmänt och kan också ändra namnet och beskrivningen av Foreach-loopen.
Klicka på Samling och välj en uppräkningstyp i listan Uppräknare.
Ange en uppräknare och ange uppräkningsalternativ på följande sätt:
Om du vill använda Foreach-filuppräknaren anger du den mapp som innehåller filerna som ska räknas upp, anger ett filter för filnamnet och typen och anger om det fullständigt kvalificerade filnamnet ska returneras. Ange också om du vill söka igenom undermappar för fler filer.
Om du vill använda uppräkningsverktyget för Foreach-objekt klickar du på Kolumneroch i dialogrutan För varje objektkolumner klickar du på Lägg till för att lägga till kolumner. Välj en datatyp i listan datatyp för varje kolumn och klicka på OK.
Skriv värden i kolumnerna eller välj värden från listor.
Not
Om du vill lägga till en ny rad klickar du någonstans utanför cellen där du skrev.
Not
Om ett värde inte är kompatibelt med kolumndatatypen markeras texten.
Om du vill använda Foreach ADO-uppräknaren väljer du en befintlig variabel eller klickar på Ny variabel i ADO-objektkällvariabeln lista för att ange variabeln som innehåller namnet på ADO-objektet som ska räknas upp och välja ett uppräkningslägesalternativ.
Om du skapar en ny variabel anger du variabelegenskaperna i dialogrutan Lägg till variabel.
Om du vill använda uppräknaren Foreach ADO.NET Schema Rowset väljer du en befintlig ADO.NET anslutning eller klickar på Ny anslutning i listan Anslutning och väljer sedan ett schema.
Du kan också klicka på Ange begränsningar och välja schemabegränsningar, välja variabeln som innehåller begränsningsvärdet eller ange begränsningsvärdet och klicka på OK.
Om du vill använda uppräknaren Foreach From Variable väljer du en variabel i listan Variable.
Om du vill använda Uppräknaren Foreach NodeList klickar du på DocumentSourceType och väljer källtypen i listan och klickar sedan på DocumentSource. Beroende på det värde som valts för DocumentSourceType väljer du en variabel eller en filanslutning i listan, skapar en ny variabel eller filanslutning eller skriver XML-källan i Dokumentkällredigeraren.
Klicka sedan på EnumerationType och välj en uppräkningstyp i listan. Om EnumerationType är Navigator, Node eller NodeTextklickar du på OuterXPathStringSourceType och väljer källtypen och klickar sedan på OuterXPathString. Beroende på värdet som angetts för OuterXPathStringSourceType väljer du en variabel eller en filanslutning i listan, skapar en ny variabel eller filanslutning eller skriver strängen för det yttre XPath-uttrycket (XML Path Language).
Om EnumerationType är ElementCollectionanger du OuterXPathStringSourceType och OuterXPathString enligt beskrivningen ovan. Klicka sedan på InnerElementType och välj en uppräkningstyp för de inre elementen och klicka sedan på InnerXPathStringSourceType. Beroende på värdet för InnerXPathStringSourceType väljer du en variabel eller en filanslutning, skapar en ny variabel eller filanslutning eller skriver strängen för det inre XPath-uttrycket.
Om du vill använda Foreach SMO-uppräknaren väljer du en befintlig ADO.NET anslutning eller klickar på Ny anslutning i listan Anslutning och skriver sedan strängen som ska användas eller klickar på Bläddra. Om du klickar på Bläddrai dialogrutan Välj SMO-uppräkning väljer du den objekttyp som ska räknas upp och uppräkningstypen och klickar på OK.
Du kan också klicka på blydningsknappen (...) i textrutan Uttryck på sidan Samling för att skapa uttryck som uppdaterar egenskapsvärden. Mer information finns i Lägg till eller ändra ett egenskapsuttryck.
Obs
Egenskaperna som anges i listan Egenskap varierar beroende på uppräknare.
Du kan också klicka på variabelmappningar för att mappa objektegenskaper till samlingsvärdet och sedan göra följande:
I listan Variabler väljer du en variabel eller klickar på <Ny variabel> för att skapa en ny variabel.
Om du lägger till en ny variabel anger du variabelegenskaperna i dialogrutan Lägg till variabel och klickar på OK.
Om du använder uppräknaren För varje objekt kan du uppdatera indexvärdet i listan Index.
Obs
Indexvärdet anger vilken kolumn i objektet som ska mappas till variabeln. Endast uppräknaren För varje objekt kan använda ett annat indexvärde än 0.
Du kan också klicka på uttryck och på sidan uttryck skapa egenskapsuttryck för egenskaperna för Foreach Loop-containern. Mer information finns i Lägg till eller ändra ett egenskapsuttryck.
Klicka på OK.
Allmän sida – Foreach-loopredigeraren
Använd sidan Allmänt i dialogrutan Foreach Loop Editor för att namnge och beskriva en Foreach Loop-container som använder en angiven uppräknare för att upprepa ett arbetsflöde för varje medlem i en samling.
Mer information om Foreach Loop-containern och hur du konfigurerar den finns i Foreach Loop Container and Configure a Foreach Loop Container.
Alternativ
Namn
Ange ett unikt namn för Foreach Loop-containern. Det här namnet används som etikett i aktivitetsikonen och i loggarna.
Not
Objektnamn måste vara unika i ett paket.
Beskrivning
Ange en beskrivning av Foreach Loop-containern.
Samlingssida – Foreach Loop Editor
Använd sidan Samling i dialogrutan Foreach Loop Editor för att ange uppräkningstypen och konfigurera uppräknaren.
Mer information om Foreach Loop-containern och hur du konfigurerar den finns i Foreach Loop Container and Configure a Foreach Loop Container.
Statiska alternativ
Uppräknare
Välj uppräkningstypen i listan. Den här egenskapen innehåller alternativen i följande tabell:
Värde | Beskrivning |
---|---|
Foreach File Enumerator | Räkna upp filer. Om du väljer det här värdet visas de dynamiska alternativen i avsnittet Foreach File Enumerator. |
Foreach Item Enumerator | Räkna upp värden i ett objekt. Om du väljer det här värdet visas de dynamiska alternativen i avsnittet Foreach Item Enumerator. |
Foreach ADO Enumerator | Räkna upp tabeller eller rader i tabeller. Om du väljer det här värdet visas de dynamiska alternativen i avsnittet Foreach ADO Enumerator. |
Foreach ADO.NET Schema Rowset Enumerator | Räkna upp ett schema. Om du väljer det här värdet visas de dynamiska alternativen i avsnittet Foreach ADO.NET Enumerator. |
foreach från variabel uppräknare | Räkna upp värdet i en variabel. Om du väljer det här värdet visas de dynamiska alternativen i avsnittet Foreach From Variable Enumerator. |
Foreach Nodelist Enumerator | Räkna upp noder i ett XML-dokument. Om du väljer det här värdet visas de dynamiska alternativen i avsnittet Foreach Nodelist Enumerator. |
Foreach SMO Enumerator | Räkna upp ett SMO-objekt. Om du väljer det här värdet visas de dynamiska alternativen i avsnittet Foreach SMO Enumerator. |
Foreach HDFS File Enumerator | Räkna upp HDFS-filer på den angivna HDFS-platsen. Om du väljer det här värdet visas de dynamiska alternativen i avsnittet Foreach HDFS File Enumerator. |
Foreach Azure Blob Enumerator | Räkna upp blobfiler på den angivna blobplatsen. Om du väljer det här värdet visas de dynamiska alternativen i avsnittet Foreach Azure Blob Enumerator. |
Foreach ADLS-filuppräknare | Räkna upp filer i den angivna Data Lake Store-katalogen. Om du väljer det här värdet visas de dynamiska alternativen i avsnittet Foreach ADLS File Enumerator. |
Foreach Data Lake Storage Gen2 File Enumerator | Räkna upp filer i den angivna Data Lake Storage Gen2-katalogen. Om du väljer det här värdet visas de dynamiska alternativen i avsnittet Foreach Data Lake Storage Gen2 File Enumerator. |
Uttryck
Klicka eller expandera uttryck för att visa listan över befintliga egenskapsuttryck. Klicka på ellipsknappen (...) för att lägga till ett egenskapsuttryck för en uppräkningsegenskap eller redigera och utvärdera ett befintligt egenskapsuttryck.
Relaterade ämnen:Integrationstjänsteuttryck (SSIS), Egenskapsuttrycksredigerare, Expressionsbyggare
Dynamiska uppräkningsalternativ
Enumerator = Foreach File Enumerator
Du använder Foreach-filuppräknaren för att räkna upp filer i en mapp. Om Foreach-loopen till exempel innehåller en Execute SQL-aktivitet kan du använda Foreach File-uppräknaren för att räkna upp filer som innehåller SQL-instruktioner som Execute SQL-aktiviteten kör. Uppräknaren kan konfigureras för att inkludera undermappar.
Innehållet i de mappar och undermappar som Uppräkningsverktyget för Foreach-filer räknar upp kan ändras medan loopen körs eftersom externa processer eller uppgifter i loopen lägger till, byter namn på eller tar bort filer medan loopen körs. Dessa ändringar kan orsaka ett antal oväntade situationer:
Om filer tas bort kan åtgärderna för en aktivitet i Foreach-loopen påverka en annan uppsättning filer än de filer som används av efterföljande uppgifter.
Om filer byts namn och en extern process automatiskt lägger till filer för att ersätta de omdöpta filerna kan åtgärderna för aktiviteter i Foreach-loopen påverka samma filer två gånger.
Om filer läggs till kan det vara svårt att avgöra för vilka filer Foreach-loopen som påverkas.
mapp
Ange sökvägen till rotmappen som ska räknas upp.
Bläddra
Bläddra för att hitta rotmappen.
Files
Ange vilka filer som ska räknas upp.
Not
Använd jokertecken (*) för att ange vilka filer som ska inkluderas i samlingen. Om du till exempel vill inkludera filer med namn som innehåller "abc" använder du följande filter: *abc*.
När du anger ett filnamnstillägg returnerar uppräknaren även filer som har samma tillägg med ytterligare tecken som läggs till. (Det här är samma beteende som för kommandot dir i operativsystemet, som också jämför 8,3-filnamn för bakåtkompatibilitet.) Uppräknarens beteende kan orsaka oväntade resultat. Du vill till exempel bara räkna upp Excel 2003-filer och ange "*.xls". Men uppräknaren returnerar också Excel 2007-filer eftersom dessa filer har tillägget ".xlsx".
Du kan använda ett uttryck för att ange vilka filer som ska inkluderas i en samling genom att expandera uttryck på sidan Samling, välja egenskapen FileSpec och sedan klicka på ellipsknappen (...) för att lägga till egenskapsuttrycket.
Fullständigt kvalificerade
Välj för att hämta den fullständigt kvalificerade sökvägen för filnamn. Om jokertecken anges i alternativet Filer, kommer de fullständigt kvalificerade sökvägar som returneras att matcha filtret.
Endast namn
Välj om du bara vill hämta filnamnen. Om jokertecken anges i alternativet Filer, matchar de filnamn som returneras filtret.
Namn och tillägg
Välj för att hämta filnamnen och filnamnstilläggen. Om jokertecken anges i alternativet Filer, kommer namnet och tillägget på de filer som returneras att matcha filtret.
bläddra genom undermappar
Välj att inkludera undermapparna i uppräkningen.
Enumerator = Objektgenomgångsenumerator
Du använder uppräkningsverktyget Foreach Item för att räkna upp objekt i en samling. Du definierar objekten i samlingen genom att ange kolumner och kolumnvärden. Kolumnerna på en rad definierar ett objekt. Till exempel har ett objekt som anger de körbara filer som en körningsprocessaktivitet kör och arbetskatalogen som aktiviteten använder två kolumner, en som visar namnen på körbara filer och en som visar arbetskatalogen. Antalet rader avgör hur många gånger loopen upprepas. Om tabellen har 10 rader upprepas loopen 10 gånger.
Om du vill uppdatera egenskaperna för aktiviteten Kör process mappar du variabler till objektkolumner med hjälp av kolumnens index. Den första kolumnen som definieras i uppräkningsobjektet har indexvärdet 0, den andra kolumnen 1 och så vidare. Variabelvärdena uppdateras med varje upprepning av loopen. Egenskaperna Körbar och WorkingDirectory för aktiviteten Kör process kan sedan uppdateras av egenskapsuttryck som använder dessa variabler.
Definiera objekten i samlingen För varje objekt
Ange ett värde för varje kolumn i tabellen.
Notis
En ny rad läggs automatiskt till i tabellen när du har angett värden i radkolumner.
Anteckning
Om de angivna värdena inte är kompatibla med kolumndatatypen färgas texten röd.
Kolumndatatyp
Visar en lista över datatypen för den aktiva kolumnen.
Ta bort
Välj ett objekt och klicka sedan på Ta bort för att ta bort det från listan.
Kolumner
Klicka här om du vill konfigurera datatypen för kolumnerna i objektet.
Relaterade Ämnen:För varje objekts kolumner Dialogrutegränssnitts Referens
Enumerator = Foreach ADO Enumerator
Du använder Foreach ADO-uppräknaren för att räkna upp rader eller tabeller i en ADO eller ADO.NET objekt som lagras i en variabel. Om Foreach-loopen till exempel innehåller en skriptaktivitet som skriver en datamängd till en variabel kan du använda Foreach ADO-uppräknaren för att räkna upp raderna i datauppsättningen. Om variabeln innehåller en ADO.NET datauppsättning kan uppräknaren konfigureras för att räkna upp rader i flera tabeller eller för att räkna upp tabeller.
ADO-objektkällvariabel
Välj en användardefinierad variabel i listan eller klicka på <Ny variabel...> för att skapa en ny variabel.
Anteckning
Variabeln måste ha objektdatatypen, annars uppstår ett fel.
Relaterade ämnen:Integration Services (SSIS)-variabler, Lägg till variabel
rader i den första tabellen
Välj om du bara vill räkna upp rader i den första tabellen.
Rader i alla tabeller (endast ADO.NET dataset)
Välj om du vill räkna upp rader i alla tabeller. Det här alternativet är endast tillgängligt om objekten som ska räknas upp är alla medlemmar i samma ADO.NET datauppsättning.
Alla tabeller (endast ADO.NET datauppsättning)
Välj om du bara vill räkna upp tabeller.
Enumerator = Foreach ADO.NET Schema Rowset Enumerator
Du använder uppräkningsverktyget Foreach ADO.NET Schema Rowset för att räkna upp ett schema för en angiven datakälla. Om Foreach-loopen till exempel innehåller en Execute SQL-uppgift kan du använda Foreach ADO.NET Schema Rowset-uppräknaren för att räkna upp scheman, till exempel kolumnerna i databasen AdventureWorks och köra SQL-uppgiften för att hämta schemabehörigheterna.
Anslutning
Välj en ADO.NET anslutningshanterare i listan eller klicka på <Ny anslutning...> för att skapa en ny ADO.NET anslutningshanteraren.
Viktig
ADO.NET-anslutningshanteraren måste använda en .NET-provider för OLE DB. Om du ansluter till SQL Server är den rekommenderade providern den interna SQL Server-klienten, som visas i avsnittet .Net Providers for OleDb i dialogrutan Connection Manager.
relaterade ämnen:ADO Connection Manager, Konfigurera ADO.NET Anslutningshanteraren
Schema
Välj det schema som ska räknas upp.
ange begränsningar
Ange de begränsningar som ska gälla för det angivna schemat.
relaterade ämnen:dialogrutan för schemabegränsningar
Enumerator = Foreach från variabel-uppräknare
Du använder uppräkningsverktyget Foreach From Variable för att räkna upp de uppräkningsbara objekten i den angivna variabeln. Om Foreach-loopen till exempel innehåller en Execute SQL-uppgift som kör en fråga och lagrar resultatet i en variabel, kan du använda uppräkningsverktyget Foreach From Variable för att räkna upp frågeresultatet.
variabel
Välj en variabel i listan eller klicka på <Ny variabel...> för att skapa en ny variabel.
relaterade ämnen:Integration Services-variabler (SSIS), Lägg till variabel
Enumerator = Foreach NodeList Enumerator
Du använder Uppräknaren Foreach Nodelist för att räkna upp den uppsättning XML-noder som resulterar i att ett XPath-uttryck tillämpas på en XML-fil. Om Foreach-loopen till exempel innehåller en skriptaktivitet kan du använda Uppräknaren Foreach NodeList för att skicka ett värde som uppfyller XPath-uttrycksvillkoren från XML-filen till skriptaktiviteten.
XPath-uttrycket som gäller för XML-filen är den yttre XPath-åtgärden som lagras i egenskapen OuterXPathString. Om XPath-uppräkningstypen är inställd på ElementCollectionkan Foreach NodeList-uppräknaren använda ett inre XPath-uttryck som lagras i egenskapen InnerXPathString på en samling element.
Mer information om hur du arbetar med XML-dokument och -data finns i "Använda XML i .NET Framework-" i MSDN-biblioteket.
Dokumentkälltyp
Välj källtypen för XML-dokumentet. Den här egenskapen innehåller alternativen i följande tabell:
Värde | Beskrivning |
---|---|
Direktinmatning | Ange källan till ett XML-dokument. |
Filanslutning | Välj en fil som innehåller XML-dokumentet. |
variabel | Ange källan till en variabel som innehåller XML-dokumentet. |
DocumentSource
Om DocumentSourceType- är inställt på Direktindataanger du XML-koden eller klickar på ellipsknappen (...) för att ange XML med hjälp av dialogrutan Dokumentkällredigeraren.
Om DocumentSourceType är inställt på Filanslutningväljer du en Filanslutningshanterare eller klickar på <Ny anslutning...> för att skapa en ny anslutningshanterare.
relaterade ämnen:Filanslutningshanteraren, Redigeraren för filanslutningshanteraren
Om DocumentSourceType är inställt på Variabelväljer du en befintlig variabel eller klickar på <Ny variabel...> för att skapa en ny variabel.
relaterade ämnen: variabler förIntegration Services (SSIS), Lägg till variabel.
Uppräkningstyp
Välj en uppräkningstyp i listan. Den här egenskapen innehåller alternativen i följande tabell:
Värde | Beskrivning |
---|---|
Navigator | Räkna upp med hjälp av en XPathNavigator. |
Nod | Räkna upp noder som returneras av en XPath-åtgärd. |
NodeText | Räkna upp textnoder som returneras av en XPath-åtgärd. |
ElementCollection | Räknar upp elementnoder som returneras av en XPath-åtgärd. |
OuterXPathStringSourceType
Välj källtypen för XPath-strängen. Den här egenskapen innehåller alternativen i följande tabell:
Värde | Beskrivning |
---|---|
Direkt inmatning | Ange källan till ett XML-dokument. |
Filanslutning | Välj en fil som innehåller XML-dokumentet. |
variabel | Ange källan till en variabel som innehåller XML-dokumentet. |
OuterXPathString
Om OuterXPathStringSourceType är inställt på Direktindata, ange då XPath-strängen.
Om OuterXPathStringSourceType har angetts till Filanslutningväljer du en filanslutningshanterare eller klickar på <Ny anslutning...> för att skapa en ny anslutningshanterare.
Relaterade ämnen:Filanslutningshanterare, Filanslutningshanterarredigerare
Om OuterXPathStringSourceType har angetts till Variabelväljer du en befintlig variabel eller klickar på <Ny variabel...> för att skapa en ny variabel.
Relaterade ämnen: Integration Services (SSIS)-variabler, Lägg till variabel.
InnerElementType
Om EnumerationType är inställt på ElementCollectionväljer du typen av inre element i listan.
InnerXPathStringSourceType
Välj källtypen för den inre XPath-strängen. Den här egenskapen innehåller alternativen i följande tabell:
Värde | Beskrivning |
---|---|
Direktinmatning | Ange källan till ett XML-dokument. |
Filanslutning | Välj en fil som innehåller XML-dokumentet. |
variabel | Ange källan till en variabel som innehåller XML-dokumentet. |
InnerXPathString
Om InnerXPathStringSourceType är inställt på Direct-indata, vänligen ange XPath-strängen.
Om InnerXPathStringSourceType är inställt på Filanslutningväljer du en filanslutningshanterare eller klickar på <Ny anslutning...> för att skapa en ny anslutningshanterare.
Relaterade ämnen:Filanslutningshanterare, Filanslutningshanterare redigerare
Om InnerXPathStringSourceType är inställt på Variabelväljer du en befintlig variabel eller klickar på <Ny variabel...> för att skapa en ny variabel.
Relaterade ämnen:Integration Services (SSIS) variabler, Lägg till variabel.
Enumerator = Foreach SMO Enumerator
Du använder Foreach SMO-uppräknaren för att räkna upp SMO-objekt (SQL Server Management Object). Om Foreach-loopen till exempel innehåller en Execute SQL-uppgift kan du använda Foreach SMO-uppräknaren för att räkna upp tabellerna i AdventureWorks databas och köra frågor som räknar antalet rader i varje tabell.
Anslutning
Välj en befintlig ADO.NET anslutningshanterare eller klicka på <Ny anslutning...> för att skapa en ny anslutningshanterare.
Relaterade ämnen: ADO.NET Anslutningshanteraren, Konfigurera ADO.NET Anslutningshanteraren
Räkna upp
Ange det SMO-objekt som ska räknas upp.
Bläddra
Välj SMO-enumerering.
Relaterade Ämnen:Välj dialogrutan för SMO-uppräkning
Uppräknare = Foreach HDFS-filuppräknare
Med Foreach HDFS-filuppräkning kan ett SSIS-paket räkna upp HDFS-filer på den angivna HDFS-platsen. Namnet på varje HDFS-fil kan lagras i en variabel och användas i aktiviteter i Foreach-loopcontainern.
Hadoop Anslutningshanterare
Ange en befintlig Hadoop-anslutningshanterare eller skapa en ny, som pekar på var HDFS-filerna finns. Mer information finns i Hadoop Connection Manager.
katalogsökväg
Ange namnet på den HDFS-katalog som innehåller de HDFS-filer som ska räknas upp.
Filnamnsfilter
Ange ett namnfilter för att välja filer med ett visst namnmönster. MySheet*.xls* innehåller till exempel filer som MySheet001.xls och MySheetABC.xlsx.
Hämta filnamn
Ange filnamnstypen som hämtats av SSIS.
Fullständigt kvalificerat namn innebär det fullständiga namnet, som innehåller katalogsökvägen och filnamnet.
Endast namn innebär att filnamnet hämtas utan sökvägen.
Traverse-undermappar
Ange om du vill loopa igenom undermappar rekursivt.
På sidan Variabelmappningar i redigeraren väljer eller skapar du en variabel för att lagra namnet på den uppräknade HDFS-filen.
Enumerator = Foreach Azure Blob Enumerator
Med Azure Blob Enumerator kan ett SSIS-paket räkna upp blobfiler på den angivna blobplatsen. Du kan lagra namnet på den uppräknade blobfilen i en variabel och använda den i aktiviteter i Foreach-loopcontainern.
Azure Blob Enumerator är en komponent i SQL Server Integration Services (SSIS) Feature Pack för Azure för SQL Server 2016 (13.x). Ladda ned funktionspaketet här.
Hanterare för Azure-lagringsanslutning
Välj en befintlig Azure Storage Connection Manager eller skapa en ny som refererar till ett Azure Storage-konto.
Relaterade ämnen: Azure Storage Connection Manager.
Blobcontainerns namn
Ange namnet på blobcontainern som innehåller de blobfiler som ska räknas upp.
Blob-katalog
Ange den blobkatalog som innehåller de blobfiler som ska räknas upp. Blobkatalogen är en virtuell hierarkisk struktur.
Sök rekursivt
Ange om du vill söka rekursivt i underkataloger.
Blobnamnfilter
Ange ett namnfilter för att räkna upp filer med ett visst namnmönster. Till exempel innehåller MySheet*.xls\*
filer som MySheet001.xls och MySheetABC.xlsx.
Tidsintervall för blob från/till filtrering
Ange ett tidsintervallfilter. Filer som ändrats efter TimeRangeFrom och före TimeRangeTo räknas upp.
Uppräknare = Foreach ADLS-filuppräknare
Med ADLS-filuppräkning kan ett SSIS-paket räkna upp filer i Azure Data Lake Store. Du kan lagra den fullständiga sökvägen för den uppräknade filen (prefix med snedstreck – /
) i en variabel och använda filsökvägen i aktiviteter i Foreach-loopcontainern.
AzureDataLakeConnection
Anger en Azure Data Lake-anslutningshanterare eller skapar en ny som refererar till ett ADLS-konto.
AzureDataLakeDirectory
Anger den ADLS-katalog som innehåller de filer som ska räknas upp.
Filnamnsmönster
Anger ett filnamnsfilter. Endast filer vars namn matchar det angivna mönstret räknas upp. Jokertecken *
och ?
stöds.
SökRekursivt
Anger om du vill söka rekursivt i den angivna katalogen.
Enumerator = Foreach Data Lake Storage Gen2 File Enumerator
Med Foreach Data Lake Storage Gen2 File Enumerator kan ett SSIS-paket räkna upp filer i Azure Data Lake Storage Gen2.
AzureStorageConnection
Anger en befintlig Azure Storage Connection Manager eller skapar en ny som refererar till en Data Lake Storage Gen2-tjänst.
Mappsökväg
Anger sökvägen till mappen som filerna ska räknas upp i.
SearchRecursively
Anger om du vill söka rekursivt i den angivna mappen.
Anteckningar om behörighetskonfiguration för tjänstprincip
Behörigheten för Data Lake Storage Gen2 bestäms av både RBAC- och ACL-er. Observera att ACL:er konfigureras med hjälp av objekt-ID (OID) för tjänstens huvudnamn för appregistreringen enligt beskrivningen här. Detta skiljer sig från det program-ID (klient-) som används med RBAC-konfiguration. När ett säkerhetsobjekt beviljas RBAC-databehörigheter via en inbyggd roll, eller via en anpassad roll, utvärderas dessa behörigheter först efter auktorisering av en begäran. Om den begärda åtgärden är auktoriserad av säkerhetsprincipalen genom RBAC-tilldelningarna, löses auktoriseringen omedelbart och inga ytterligare ACL-kontroller utförs. Alternativt, om säkerhetsobjektet inte har någon RBAC-tilldelning eller om begärans åtgärd inte matchar den tilldelade behörigheten, utförs ACL-kontroller för att avgöra om säkerhetsobjektet har behörighet att utföra den begärda åtgärden. För att uppräknaren ska fungera behöver du bevilja minst Kör behörighet från rotfilsystemet samt Läs behörighet för målmappen. Alternativt kan du bevilja minst rollen Storage Blob Data Reader i RBAC. För mer information, se den här artikeln.
Sidan för Variabelmappningar - Foreach-loopredigerare
Använd sidan Variables Mappings i dialogrutan Foreach Loop Editor för att mappa variabler till samlingsvärdet. Värdet för variabeln uppdateras med samlingsvärdena för varje iteration av loopen.
Mer information om hur du använder Foreach Loop-containern i ett Integration Services-paket finns i Foreach Loop Container. Mer information om hur du konfigurerar den finns i Konfigurera en Foreach-loopcontainer.
Självstudiekursen om Microsoft SQL Server Integration Services, Skapa ett enkelt ETL-paket, innehåller en lektion som lär dig att lägga till och konfigurera en Foreach-loop.
Alternativ
variabel
Välj en befintlig variabel eller klicka på Ny variabel... för att skapa en ny variabel.
Not
När du har mappat en variabel läggs en ny rad automatiskt till i listan Variable.
Relaterade Ämnen: Integration Services-variabler (SSIS), Lägg till variabel
Index
Om du använder uppräknaren Foreach Item anger du indexet för kolumnen i samlingsvärdet som ska mappas till variabeln. För andra uppräkningstyper är indexet endast läsbart.
Anteckning
Indexet är 0-baserat.
Ta bort
Välj en variabel och klicka sedan på Ta bort.
Dialogrutan Schemabegränsningar (ADO.NET)
Använd dialogrutan Schemabegränsningar för att ange de schemabegränsningar som ska tillämpas på Foreach ADO.NET Schema Rowset-enumeratorn.
Alternativ
Begränsningar
Välj de begränsningar som ska tillämpas på schemat.
variabel
Använd en variabel för att definiera begränsningar. Välj en variabel i listan eller klicka på Ny variabel... för att skapa en ny variabel.
relaterade ämnen:Integration Services-variabler (SSIS) , Lägg till variabel
Text
Ange texten för att definiera begränsningar.
Dialogrutan för kolumner för objekt
Använd dialogrutan för varje objektkolumner för att definiera kolumnerna i de objekt som uppräknaren Foreach Item räknar upp.
Alternativ
kolumn
Visar en lista över kolumnerna.
datatyp
Välj datatyp.
Lägg till
Lägg till en ny kolumn.
Ta bort
Välj en kolumn och klicka sedan på Ta bort.
Dialogrutan Välj SMO-uppräkning
Använd dialogrutan Välj SMO-uppräkning för att ange SQL Server Management Objects -objektet (SMO) på den angivna instansen av SQL Server för uppräkning och för att välja uppräkningstyp.
Alternativ
Räkna upp
Expandera servern och välj SMO-objektet.
objekt
Använd uppräkningstypen Objekt.
Fyll i i förväg
Använd alternativet Förfyll med uppräkningstypen Objekt.
namn
Använd uppräkningstypen Namn.
URN:er
Använd uppräkningstypen URNs.
platser
Använd uppräkningstypen Platser. Det här alternativet är endast tillgängligt för filer.
Använda egenskapsuttryck med Foreach Loop-containrar
Paket kan konfigureras för att köra flera körbara filer samtidigt. Den här konfigurationen bör användas med försiktighet när paketet innehåller en Foreach Loop-container som implementerar egenskapsuttryck.
Det är ofta användbart att implementera ett egenskapsuttryck för att ange värdet för egenskapen ConnectionString för de anslutningshanterare som Foreach Loop-uppräknare använder. Egenskapsuttrycket för ConnectionString anges av en variabel som mappar till samlingsvärdet för uppräknaren och uppdateras vid varje iteration av loopen.
För att undvika negativa konsekvenser av icke-förutbestämd tidpunkt för parallell körning av aktiviteter i -loopen bör paketet konfigureras för att endast köra en körbar fil i taget. Till exempel, om ett paket kan köra flera uppgifter samtidigt kan en Foreach Loop-container, som listar filer i mappen och hämtar filnamnen, använda en Execute SQL-uppgift för att infoga filnamnen i en tabell. Detta kan leda till skrivkonflikter om två instanser av Execute SQL-uppgiften försöker skriva samtidigt. Mer information finns i Använda egenskapsuttryck i Paket.