• SSIS can still be used easily, since you're just using it to perform a loop for you that executes a dynamic SQL statement.

    In your SSIS package you should have at least one OLE DB connection defined. This will connect you to a particular database. Assuming you have permissions to access both databases and that they are on the same server instance, all you need to do is to amend the SQL statement to incorporate the Database name and Schema name:

    "INSERT INTO [DestinationDB].[dbo]." + @[User::DestinationTable] + " SELECT * FROM [SourceDB].[dbo]." + @[User::SourceTable]

    This assumes your schema name is dbo, but you can change that as necessary.

    The other thing you can do, which will make the process dynamic across databases as well, is to add the database and schema names into your source data. So the original table that contains the names will look something like:

    Source Destination

    [db1].[dbo].[table1] [db2].[dbo].[table1]

    [db1].[dbo].[table2] [db2].[dbo].[table2]

    [db3].[dbo].[table3] [db4].[dbo].[table3]

    Here you would go back to the simple form of the SQL statement:

    "INSERT INTO " + @[User::DestinationTable] + " SELECT * FROM " + @[User::SourceTable]

    Give me a shout if you need any more help.