Execute legacy SSIS packages on newer SQL version - sql-server

I have a few SSIS packages, developed in SQL Server 2008. Those packages have ActiveX Script Task. When I try to open those packages in VS 2017, it throws an error, saying ActiveX task is deprecated. Converting those task to Script Task would be really time consuming.
Is there a way to execute those packages in SQL Server Agent? We use SQL Server 2016 Standard edition.
I tried executing from the file system, but it also throws an error:
The "Microsoft.SqlServer.Dts.Tasks.ActiveXScriptTask.ActiveXScriptTask, Microsoft.SqlServer.ActiveXScriptTask, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" task has been deprecated and cannot be used with this version of Integration Services.
I don't really need for now to upgrade those packages, I can still use Business Intelligence 2008 to maintain them. I just need them to run on the SQL Server 2016 instance.
Thanks for your time and help

Sadly, SQL Server is telling you the answer in the error message quite simply.
It is Deprecated and cannot be used.

Related

Upgrade SSIS Package Using SMO to SQL Server 2019

I have a SSIS package that was originally developed to target SQL Server 2015 that does a variety of things in C# Scripts using SQL Server Management Objects (SMO) that now needs to be upgraded to target SQL Server 2019. Eventually, this package is deployed to the server to run in a SQL Agent Job.
Starting in SQL Server 2017, SMO was moved to a NuGet package and is no longer included in SQL Server Feature Packs as it was for previous versions.
The issue I have is that Integration Services Projects do not really support NuGet. As discussed in the below link:
SSIS Script Task cant find reference to assembly
As mentioned in the above ticket, I believe I could manually install the .dll's to the server if necessary but I am curious if there are other solutions to this issue.
Questions:
Is there a way to get Script Tasks in SSIS packages to utilize the SMO NuGet?
If "no" to the above, is there another common method of executing C# script via SQL server other than installing the .dll's to the server?
You would be better off installing SMO DLLs into target server Global Assembly Cache. SSIS still does not use local assemblies and you have to introduce some workarounds to defeat that.
You can do a simple MSI installation with SMO DLLs - for example see WIX deploy two assemblies to GAC or What's the 'correct' way of registering/installing an Assembly to the GAC?.

Package running in SSDT but not through the Execute Package Utility

I created a package that will run in SSDT, but it will not run through the execute package utility when saved to the filesystem. Perhaps there is an easy fix, but I am unaware of one, and googling didn't seem to yield anything useful.
I am running SQL Server Enterprise 2017, as well as Visual Studio 2017 with the most recent version of SSDT. I have tried installing SQL Server 2018 to no avail.
The point is scheduling the package, one solution would be for package to run through DTExec.exe, alternatively if there is a way to automate running the package through SSDT that would also work.
The error:
To run a SSIS Package outside of SQL Server Data Tools you must install Standard Edition of Integration Services or higher.
The catch:
afaik I have SQL server enterprise installed as I can save SSIS packages to the file system through the SQL Server Import Export Wizard (before I received enterprise edition it said originally it required SQL server standard edition or higher to save the packages)
Make sure that you have selected the Integration Services check box while installing SQL Server features. It looks like you have installed SQL Server Data Tools for Visual Studio which allows you to create SSIS packages but you didn't install SSIS feature which is required to execute packages.
You can refer to the following official documentation for additional information:
Install Integration Services
Make sure you have select the relevant TargetServerVersion property in the project configuration. You can refer to the following link for more information:
How to change TargetServerVersion of my SSIS Project

SSIS - The script task ... use version 15.0 script that is not supported in this release of Integrated service

Hi I'm looking for some guidance.
I've developed an SSIS project with a couple of script tasks and script components using visual studio 2015 for targeted version 2016.
I have two environment server A and server B both have SSIS 2016 SP1 installed on it.
I have done a project deployed of the packages to Sever A and tested the packages everything executed perfectly.
However when I deployed the packages in SSIS_DB from Server A to Server B I get these errors in my execution report.
The component metadata for "script component, clsid { }" could not be upgraded to the newer version of the component. The PerformUpgrade method failed
2
There was an exception while loading Script Task from XML: System.Exception: The Script Task "" uses version 15.0 script that is not supported in this release of Integration Services. To run the package, use the Script Task to create a new VSTA script. In most cases, scripts are converted automatically to use a supported version, when you open a SQL Server Integration Services package in %SQL_PRODUCT_SHORT_NAME% Integration Services.
at Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptTask.LoadFromXML(XmlElement elemProj, IDTSInfoEvents events)
The interesting part is if I deploy my packages directly from visual studio to Server B the packages executes correctly with no issue.
So there seems to be inconsistencies between server A and Server B.
A small background to this is that when both servers were built Server A had Microsoft SQL Server 2016 (SP1-GDR) and Server Microsoft SQL Server 2016 (RTM)
but they both now have Microsoft SQL Server 2016 (SP1-GDR) after Server B was updated.
I'm not sure how the upgrade was done by my suspicion is that the SSIS on server are different but I can't seem to prove it.
when I check the version they both seem to return same or similar meta data
The right answer is here: https://andyleonard.blog/2017/09/ssis-version-15-0-script-error/
In my case the problem was the setting at the project level “TargetServerLevel” set to “SQL Server 2017”. The correct value must be “SQL Server 2016”. Once the value is changed and the project redeployed errors desappear.
I believe one of developers in my team used VS 2017 when added the project. All other tasks and components, excep script, were fine even with incorrect server version and the problem appeared only when I had to use script tasks and components.
To fix the problem open project parameters => Configuration Properties => TargetServerVersion
Select “SQL Server 2016”, then deploy to the server.
This was caused by SSMS. I don’t know what’s going on under the hood but During the deployment I was using SSMS 2017 which seems to be upgrading script components in my packages. I changed to use SSMS 2016 and this issue disappeared
Just summarizing some things because there are some reasons for facing this problem:
Your are deploying a package with Target Version Definition for another SQL Server
You are deploying a package which contains a script task with not same SSMS version as SQL Server Version
If your package doesn't contain a script task for example, then any version of SSMS can deploy the package to any version of SQL Server via SSISDB catalog. Not sure why is this happening. Seems that you can deploy and execute packages while making sure that the package target version is supported from SQL Version, but also if you have a ScriptTask inside you need to be super careful and make sure also that the integration services version of SSMS is the same with SQL Server version.
I will open a question to Microsoft just to be sure why the script task has this treatment. Maybe is because the script task is Framework dependent.

ERROR: To run a SSIS package outside of SQL Server Data Tools you must install Standard Edition (64-bit) of Integration Services or higher

I have VS2015 Community and SQL Server 2016 Developer installed. Using the MSFT link, I've ensured to download the latest version of SSDT, which appears to install without error (though, Integration Services do not show in the SQL Configuration Manager). Using previously validated projects that creates and executes SSIS packages, I cannot get the same code to work with the current setup.
The error showing when I debug:
Component: SSIS.Pipeline
Error: To run a SSIS package outside of SQL Server Data Tools you must install Standard Edition (64-bit) of Integration Services or higher.
I've uninstalled, reinstalled, repaired, modified, etc., but cannot get the package to build and execute. Has anyone seen similar issues with the setup mentioned?
As per my understanding
You need to install SQL Server and make sure to select Integration Services. Then run DTExec.exe from the new SQL server installation folder.
I have exactly the same issue. I ended up installing SQL Server 2017, SSMS 17.4 and VS 2017, SSDT for VS2017 and successfully run my packages FINALLY! It looks like SQL server and SSDT/VS version has to be "matched". Not sure if they have to be the same version though. But this is quite annoying.

Error running the SSIS package out side the Development studio

I am learning to work with the SSIS packages.
I have made an SSIS package to work with the delta data(changed data since last run).
But i am having troubles running the package outside the development enviroment
I have tried to runt it with DTEXECUI.EXE utilty but it gives me the following error.
I have also tried to run it from a stored procedure by enabling the xp_cmdshell but i still get some error like this.
Please help, i am also trying to Google my way through.
It's clear from the error messages To run a ssis package outside of sql server data tools you must...
SSIS 2012 components have to be installed on your server to resolve the issue.
As per this post:
What you need are the base SQL Server binaries which are installed
with the DB engine. So you need a SQL Server Instance of some flavour
to have dtexec running. Whether it's the DB Engine or the SSIS service
installed but disabled.
Running packages in BIDS is a special case. Run the package on the
same PC as BIDS via dtexec and it will fail unless you have installed
server components (= a SQL Server Instance)

Resources