I’ve got an MS SQL database with 3 inherent tables. A general one called “Tools” and two more specific ones “DieCastTool” and “Deburrer”.
My task is it to get data out of an old MS Access “database”. My Problem is, that I have to do a lot of search and filtering stuff untill I’ve got my data that I’d like to import into the new DB. So finally I don’t want to do theses steps several times but populate the 3 tables at the same time.
Therefore I am using da Dataflowtarget in which I am not selecting a certain table, but using an sql select statement (with inner joins on the id columns) to receive all the fields of the 3 tables. Then I match the columns and in my opinion it should work. And it does as long as I only select the columns of the “Tools” table to be filled. When adding the columns of the child-tables, unfortunately it does not and returns me the ErrorCode -1071607685 => “No status is available”
I can think of 2 reasons why my solution does not work:
- SSIS simply can’t handle inheritance in SQL Tables and sees them as individual tables. (Maybe SSIS even can’t handle filling multiple tables in one Dataflowtarget element?)
- I am using SSIS in a wrong way.
Would be nice if someone could confirm/decline reason 1 because I have not found anything on this topic.
Yes, SSIS is not aware of table relationships. Think of it as: SSIS is aware of physical objects only, not your logical model.
I didn’t understand how You got that error. Anyway, here are solutions:
Execute SQL Task to disable (or drop) constraints, add the same
dataflow as in 1. and add another Execute SQL Task to enable (or
create) constraints
one dataflow to read all data and pass it to subsequent dataflows to
fill table by table. See
SSIS Pass Datasource Between Control Flow Tasks.