Vid: Koen Verbeeck | Uppdaterad: 2018-07-31 | Kommentarer (13) | Relaterad: Mer > Utveckling av integrationstjänster

Problem

SQL Server Data Tools (SSDT) är en utvecklingsmiljö för att skapa och underhålla paket och projekt för integrationstjänster (SSIS). Historiskt sett fanns det ingen bakåtkompatibilitet, vilket innebar att du med en nyare version av SSDT inte kunde skapa SSIS-paket för en äldre version av SSDT. Sedan SQL Server 2016 har SQL Server Data Tools stöd för bakåtkompatibilitet upp till SQL Server 2012. I detta tips förklaras den nya funktionen.

Lösning

Introduktion

Historiskt sett hade varje version av SQL Server en medföljande version av en utvecklingsmiljö för affärsinformation. Detta var alltid antingen en uppsättning mallar som installerades i Visual Studio eller, om Visual Studio inte redan fanns, ett skal av Visual Studio som endast kunde hantera BI-projekt. Med det här verktyget kunde du utveckla projekt för Integration Services, Analysis Services och Reporting Services.Till en början kallades verktyget Business Intelligence Development Studio eller BIDS.I SQL Server 2012 bytte det namn till SQL Server Data Tools. Microsoft hade dock även en annan produkt som hette SQL Server Data Tools; med det här verktyget kunde du skapa och hantera SQL Server-databasprojekt. BI-verktyget fanns på installationsmediet för SQL Server, medan databasverktyget var en separat (och gratis) nedladdning. Eftersom detta orsakade en hel del förvirring döptes SSDT om till SQL ServerData Tools for Business Intelligence eller SSDT-BI. Sedan SQL Server 2016 är BI-verktygen nu kopplade till databasverktyget och hela verktygslådan heter nuSQL Server Data Tools eller SSDT. En översikt:

  • SQL Server 2005 – Visual Studio 2005 (BIDS)
  • SQL Server 2008 och 2008R2 – Visual Studio 2008 (BIDS)
  • SQL Server 2012 – Visual Studio 2010 (SSDT, finns på SQL Servers installationsmedia) eller Visual Studio 2012 (SSDT-BI, finns som en separat nedladdning)
  • SQL Server 2014 – Visual Studio 2013 (SSDT-BI, tillgänglig som separat nedladdning)
  • SQL Server 2016 – Visual Studio 2015 (SSDT, tillgänglig som separat nedladdningoch innehåller även databasprojekt)
  • SQL Server 2017 – Visual Studio 2015 eller Visual Studio 2017 (SSDT)

Problemet här var att SSIS inte hade något stöd för bakåtkompatibilitet.Om du till exempel ville utveckla paket för SQL Server 2008 behövde du VisualStudio 2008. Om du ville utveckla för SQL Server 2014 behövde du Visual Studio2013. Med Visual Studio 2013 kunde du inte utveckla SSIS-projekt för SQL Server2008 eller någon annan version av SQL Server utom SQL Server 2014. Detta innebar att om du arbetade med flera versioner av SSIS, slutade det med att du hade många olika versioner av Visual Studio på din utvecklingsmaskin.

De senaste versionerna av SSDT (sedan SQL Server 2016) löser dessa problem: genom att införa bakåtkompatibilitet kan du använda en enda version av SSDT för att utveckla och underhålla versioner av SSIS-projekt från 2012 till 2017 och senare. Det är viktigt att notera att SSAS och SSRS stöder bakåtkompatibilitet sedan länge.

SSIS och bakåtkompatibilitet

Resten av det här tipset skrevs med hjälp av SSDT-versionen av Visual Studio 2015 tillsammans med SQL Server 2016. Alla råd som ges i det här tipset gäller även för senare versioner.

Först av allt måste vi installera den senaste versionen av förhandsversionen av Visual Studio 2015SSDT. När du öppnar installationsmediet för SQL Server 2016 kan du hitta en länk till nedladdningssidan. Den innehåller också en länk till nedladdningssidan för SQL Server Management Studio (SSMS), eftersom detta nu också är en separat nedladdning.

Skapa ett nytt projekt

När du lägger till ett nytt projekt kan du se att det nu är möjligt att skapa både databasprojekt och BI-projekt i SSDT.

I projektegenskaperna kan du ange vilken SSIS-målversion som SSDT ska använda för det här projektet.

Den förvalda målversionen är SQL Server 2016 (i senare versioner av SSIS är det den senaste versionen av SQL Server). SQL Server 2014 och SQL Server 2012 stöds också, medan äldre versioner (2005 och 2008) inte stöds. Om du har äldre projekt än SQL Server 2012 måste du uppgradera dem först innan du kan använda den senaste SSDT-versionen.

När målversionen är inställd anpassas SSIS-verktygslådan därefter. I SQL Server 2016 finns till exempel nya Hadoop-uppgifter tillgängliga och du kan ladda nerAzure-uppgifter frånAzure-funktionspaketet.

När du ställer in versionen till SQL Server 2014 försvinner alla dessa nya uppgifter från SSIS-verktygslådan. Samma sak gäller för dataflödestransformationer som introduceradesi SQL Server 2016.

När du ändrar versionen för ett projekt får du en varning om att befintliga paket kan komma att ändras:

Om du använder SQL Server 2016-funktionalitet får du dock ett fel efter att du har ställt in målversionen till en tidigare version när du öppnar paketet:

Paketet öppnas fortfarande, men felande uppgifter, transformationer eller anslutningshanterare kan försvinna, eller så kan du inte öppna en editor. Det är möjligt att det inte löser problemet att byta tillbaka till SQL Server 2016: objektet kanske fortfarande är trasigt. I så fall finns det inget annat alternativ än att ta bort objektet och lägga till det igen.

I skrivande stund finns det ett par buggar när man växlar mellan målversioner. Du kan hitta en lista på MSDN-blogginläggetWhat’s New for SSIS 2016 RC0?. Det är möjligt att några av dessa redan är åtgärdade när du läser detta.

När du har egna anpassade komponenter i SSIS måste du ta några extra steg för att få dem att fungera med egenskapen målversion. SQL Server MVP Joost vanRossum förklarar hur du kan göra detta i sitt blogginläggSwitching Target Server Versions for custom components.

Lägga till befintliga paket till projektet

När du lägger till ett befintligt SSIS-paket från en tidigare version till projektet – till exempel ett SSIS 2012-paket till ett 2016-projekt – kommer paketet att uppgraderas för att matcha målversionen.

När versionerna stämmer överens sker naturligtvis ingen uppgradering, utan paketet läggs direkt till i projektet. Du kan också lägga till paket från en högre version till projektet, SSIS kommer att försöka nedgradera dem.

Tester visar dock att du inte alltid kan lita på detta meddelande. Även med ett lyckomeddelande kan paketet gå sönder om du endast använder SQL Server 2016-komponenter.

Öppna ett befintligt projekt

När du använder SSDT 2015 för att öppna ett projekt som skapats med en tidigare version av SSDT kommer uppgraderingsguiden automatiskt att starta. Detta innebär att alla paket uppgraderas till SQL Server 2016.

Det går visserligen fortfarande att nedgradera projektet tillbaka till den tidigare versionen, men att gå igenom uppgraderingsprocessen är kanske något du inte vill. Som ett alternativ kan du redigera projektfilen och lägga till följande rad:

Detta gör att SSDT 2015 hoppar över uppgraderingsguiden och öppnar projektet direkt med rätt målversion. För SQL Server 2014 ändrar du förstås SQLServer2012till SQLServer2014. Även om den här lösningen verkar fungera, så stöds inte riktigt manuell redigering av XML i projektfilen. Mitt råd är att skapa ett nytt tomt projekt, ange målversionen och börja sedan lägga till paket.

Control Flow Parts

Control flow parts introduceras i tipsetSQL Server Integration Services 2016 Control Flow Templates Introduction (de har bytt namn från templates till parts). Överraskande nog kan du fortfarande arbeta med kontrollflödesdelar om din målversion inte är SQL Server2016. Detta är möjligt eftersom de är en funktion i designtiden och de påverkar inte hur paket faktiskt fungerar. I exemplet här har jag skapat ett nytt projekt med målversionen inställd på SQL Server 2014. Jag skapade en enkel kontrollflödesdeloch lade till den i paketet.

Debuggning av paketet är inget problem.

Och du kan också köra paketet i en SSIS-katalog för SQL Server 2014:

Slutsats

Gegenskapen Target Server Version introducerar bakåtkompatibilitet för SSIS-projekt i SSDT 2015. Med den här nya möjligheten har en gammal SSIS-åkomma äntligen åtgärdats: du kan bara använda en enda version av Visual Studio för att hantera dina olika SSIS-projekt. Det rekommenderas att du ställer in serverversionen i början av projektet och att du inte byter den för ofta eftersom det kan leda till problem.Den goda nyheten är att med SSDT 2015 och senare kan du också använda kontrollflödesdelar i dina äldre projekt!

Nästa steg
  • För mer information om de olika versionerna av SQL Server Data Tools:
    • TheSSDT Evolution
    • SQL 2014 CTP1, where is my BIDS?
  • För mer information om Control Flow-delar kan du läsa tipsetSQL Server Integration Services 2016 Control Flow Templates Introduction.
  • För fler SQL Server 2016-tips kan du använda den häröversikten.

Sist uppdaterad: 2018-07-31

Om författaren
Koen Verbeeck är BI-specialist och specialiserar sig på Microsofts BI-stack med en särskild kärlek till SSIS.
Se alla mina tips
Relaterade resurser

  • Mer Business Intelligence Tips…

Lämna ett svar

Din e-postadress kommer inte publiceras.