SSIS Package to copy data from one to another error
I have setup a SSIS package to copy over some data from one table to another. At first I tried doing from one server to another server, did not succeed. Then I tried it doing within the same server, no luck again. I followed couple tutorials/videos how to do it and followed the exact pattern.
However here's what I tried to do:
- Create a "Data Flow Task"
- Under "Data Flow" tab create an "OLE DB Source" and "OLE DB Destination"
- Configure the "OLE DB connection manager" and setup the column mapping, verify connection status for both source and destination
When I run the package I get following errors
Here are the 5 errors that are in the above figure,
- [OLE DB Destination 2] Error: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "STLEDGSQL01.MES_DEV" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed.
- [SSIS.Pipeline] Error: OLE DB Destination failed validation and returned error code 0xC020801C.
- [SSIS.Pipeline] Error: One or more component failed validation.
- Error: There were errors during task validation.
- [Connection manager "STLEDGSQL01.MES_DEV"] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.".
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "Client unable to establish connection".
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "Registry information is corrupt or missing. Make sure the provider is installed and registered correctly.".
Now I have tried applying couple of solution that I found in stackoverflow and out in the internet, such as following but nothing helped me so far.
- Set delay validation property at package level to True from false
- Change ProtectionLevel to EncryptSensitiveWithUserKey
Any help is greatly appreciated!
Answers (2)
For anyone who's interested or had the same issue as mine, I just found the answer. I was using the wrong TargetServerVersion
in project properties. My SQL server is 2016 and it was defaulted to 2019 automatically in this property page. I did change it back to 2016 and yes it all starts working.
I suggest that you do not use SSIS to move data around inside a database. Just use a stored prcedure or script. Here is a sample script that will copy data from one table to another, but only for data that doesn't exist in the target.
insert into targettable (PrimaryKeyColumn,Column1,Column2,Column3)
select PrimaryKeyColumn,Column1,Column2,Column3
from sourcetable SRC
where not exists (
select *
from targettable TGT
where TGT.PrimaryKeyColumn = SRC.PrimaryKeyColumn
)