Trying to pull from many tables with similar names using one for each loop container

  • Hi. I have a situation where I have various tables named like, for example,

    mytable_t1, mytable_t2, ... and so on.

    I'd like to copy these tables nightly to another database using SSIS. Since the amount of tables can increase I am wondering if there is a way to do so dynamically so that the program is aware of when another table gets added.

    So far I have>

    created a t-sql task that gets the tables along with a row id inserted into a object type ssis variable. I connect this variable to a forEach loop container using the ADO enumerator and the variable as the source object. I want to map the second column (table name) to another variable (user::currentTable). I thus map this second variable to index 1 to get the second column in the container's variable mapping dialogue. I hope this is correct.

    Inside the container is a data flow with a source and destination only.

    I am curious if anyone has encountered this situation and how the dataflow needs to be configured.

    Thanks

    ----------------------------------------------------

  • Do all the tables have the same schema?

    There are no special teachers of virtue, because virtue is taught by the whole community.
    --Plato

  • Hi and thank you for the reply. Yes they all have the same schema.

    ----------------------------------------------------

  • mmartin1 (11/1/2012)


    I'd like to copy these tables nightly to another database using SSIS. Since the amount of tables can increase I am wondering if there is a way to do so dynamically so that the program is aware of when another table gets added.

    I would approach this slightly differently.

    First, pull the tablelist into a package object for Recordsets with something similar to the following:

    SELECT [name] FROM sys.sysobjects WHERE [name] like 'mytable_%'

    Next, fire up the forEach loop like you've done, feeding said result into another string package variable. Now, for the internals of the loop:

    Quick script to feed a full SELECT * FROM <packagevariable> statement (full query) into yet another string package variable. This will be fed into the dataflow for the OLEDB source as an expression for the SQL statement. You can adjust the target table in a similar way via expressions and the original table's name.


    - Craig Farrell

    Never stop learning, even if it hurts. Ego bruises are practically mandatory as you learn unless you've never risked enough to make a mistake.

    For better assistance in answering your questions[/url] | Forum Netiquette
    For index/tuning help, follow these directions.[/url] |Tally Tables[/url]

    Twitter: @AnyWayDBA

  • Thanks for the reply Craig. I'll play around with that and report back.

    ----------------------------------------------------

Viewing 5 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic. Login to reply