Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 5960599
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 22, 20262026-05-22T18:50:54+00:00 2026-05-22T18:50:54+00:00

I have a control flow where I create a temp database and table with

  • 0

I have a control flow where I create a temp database and table with a T-SQL Command. When I add a dataflow I would like to query the table but I can’t because the table doesn’t exist to grab information from. When I try I get errors about logging in because the database doesn’t exist (yet). I have set the connection manager’s property DelayValidation to True.

If I create the database and table manually and then add the dataflow with query and drop the database, it sticks but it doesn’t seem like a clean solution.

If there is a better way to create a temporary staging database and query it in dataflows please let me know.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-22T18:50:55+00:00Added an answer on May 22, 2026 at 6:50 pm

    Solution:

    Set the property RetainSameConnection on the Connection Manager to True so that temporary table created in one Control Flow task can be retained in another task.

    Here is a sample SSIS package written in SSIS 2008 R2 that illustrates using temporary tables.

    Walkthrough:

    Create a stored procedure that will create a temporary table named ##tmpStateProvince and populate with few records. The sample SSIS package will first call the stored procedure and then will fetch the temporary table data to populate the records into another database table. The sample package will use the database named Sora Use the below create stored procedure script.

    USE Sora;
    GO
    
    CREATE PROCEDURE dbo.PopulateTempTable
    AS
    BEGIN
        
        SET NOCOUNT ON;
    
        IF OBJECT_ID('TempDB..##tmpStateProvince') IS NOT NULL
            DROP TABLE ##tmpStateProvince;
    
        CREATE TABLE ##tmpStateProvince
        (
                CountryCode     nvarchar(3)         NOT NULL
            ,   StateCode       nvarchar(3)         NOT NULL
            ,   Name            nvarchar(30)        NOT NULL
        );
    
        INSERT INTO ##tmpStateProvince 
            (CountryCode, StateCode, Name)
        VALUES
            ('CA', 'AB', 'Alberta'),
            ('US', 'CA', 'California'),
            ('DE', 'HH', 'Hamburg'),
            ('FR', '86', 'Vienne'),
            ('AU', 'SA', 'South Australia'),
            ('VI', 'VI', 'Virgin Islands');
    END
    GO
    

    Create a table named dbo.StateProvince that will be used as the destination table to populate the records from temporary table. Use the below create table script to create the destination table.

    USE Sora;
    GO
    
    CREATE TABLE dbo.StateProvince
    (
            StateProvinceID int IDENTITY(1,1)   NOT NULL
        ,   CountryCode     nvarchar(3)         NOT NULL
        ,   StateCode       nvarchar(3)         NOT NULL
        ,   Name            nvarchar(30)        NOT NULL
        CONSTRAINT [PK_StateProvinceID] PRIMARY KEY CLUSTERED
            ([StateProvinceID] ASC)
    ) ON [PRIMARY];
    GO
    

    Create an SSIS package using Business Intelligence Development Studio (BIDS). Right-click on the Connection Managers tab at the bottom of the package and click New OLE DB Connection... to create a new connection to access SQL Server 2008 R2 database.

    Connection Managers - New OLE DB Connection

    Click New... on Configure OLE DB Connection Manager.

    Configure OLE DB Connection Manager - New

    Perform the following actions on the Connection Manager dialog.

    • Select Native OLE DB\SQL Server Native Client 10.0 from Provider since the package will connect to SQL Server 2008 R2 database
    • Enter the Server name, like MACHINENAME\INSTANCE
    • Select Use Windows Authentication from Log on to the server section or whichever you prefer.
    • Select the database from Select or enter a database name, the sample uses the database name Sora.
    • Click Test Connection
    • Click OK on the Test connection succeeded message.
    • Click OK on Connection Manager

    Connection Manager

    The newly created data connection will appear on Configure OLE DB Connection Manager. Click OK.

    Configure OLE DB Connection Manager - Created

    OLE DB connection manager KIWI\SQLSERVER2008R2.Sora will appear under the Connection Manager tab at the bottom of the package. Right-click the connection manager and click Properties

    Connection Manager Properties

    Set the property RetainSameConnection on the connection KIWI\SQLSERVER2008R2.Sora to the value True.

    RetainSameConnection Property on Connection Manager

    Right-click anywhere inside the package and then click Variables to view the variables pane. Create the following variables.

    • A new variable named PopulateTempTable of data type String in the package scope SO_5631010 and set the variable with the value EXEC dbo.PopulateTempTable.

    • A new variable named FetchTempData of data type String in the package scope SO_5631010 and set the variable with the value SELECT CountryCode, StateCode, Name FROM ##tmpStateProvince

    Variables

    Drag and drop an Execute SQL Task on to the Control Flow tab. Double-click the Execute SQL Task to view the Execute SQL Task Editor.

    On the General page of the Execute SQL Task Editor, perform the following actions.

    • Set the Name to Create and populate temp table
    • Set the Connection Type to OLE DB
    • Set the Connection to KIWI\SQLSERVER2008R2.Sora
    • Select Variable from SQLSourceType
    • Select User::PopulateTempTable from SourceVariable
    • Click OK

    Execute SQL Task Editor

    Drag and drop a Data Flow Task onto the Control Flow tab. Rename the Data Flow Task as Transfer temp data to database table. Connect the green arrow from the Execute SQL Task to the Data Flow Task.

    Control Flow Tab

    Double-click the Data Flow Task to switch to Data Flow tab. Drag and drop an OLE DB Source onto the Data Flow tab. Double-click OLE DB Source to view the OLE DB Source Editor.

    On the Connection Manager page of the OLE DB Source Editor, perform the following actions.

    • Select KIWI\SQLSERVER2008R2.Sora from OLE DB Connection Manager
    • Select SQL command from variable from Data access mode
    • Select User::FetchTempData from Variable name
    • Click Columns page

    OLE DB Source Editor - Connection Manager

    Clicking Columns page on OLE DB Source Editor will display the following error because the table ##tmpStateProvince specified in the source command variable does not exist and SSIS is unable to read the column definition.

    Error message

    To fix the error, execute the statement EXEC dbo.PopulateTempTable using SQL Server Management Studio (SSMS) on the database Sora so that the stored procedure will create the temporary table. After executing the stored procedure, click Columns page on OLE DB Source Editor, you will see the column information. Click OK.

    OLE DB Source Editor - Columns

    Drag and drop OLE DB Destination onto the Data Flow tab. Connect the green arrow from OLE DB Source to OLE DB Destination. Double-click OLE DB Destination to open OLE DB Destination Editor.

    On the Connection Manager page of the OLE DB Destination Editor, perform the following actions.

    • Select KIWI\SQLSERVER2008R2.Sora from OLE DB Connection Manager
    • Select Table or view - fast load from Data access mode
    • Select [dbo].[StateProvince] from Name of the table or the view
    • Click Mappings page

    OLE DB Destination Editor - Connection Manager

    Click Mappings page on the OLE DB Destination Editor would automatically map the columns if the input and output column names are same. Click OK. Column StateProvinceID does not have a matching input column and it is defined as an IDENTITY column in database. Hence, no mapping is required.

    OLE DB Destination Editor - Mappings

    Data Flow tab should look something like this after configuring all the components.

    Data Flow tab

    Click the OLE DB Source on Data Flow tab and press F4 to view Properties. Set the property ValidateExternalMetadata to False so that SSIS would not try to check for the existence of the temporary table during validation phase of the package execution.

    Set ValidateExternalMetadata

    Execute the query select * from dbo.StateProvince in the SQL Server Management Studio (SSMS) to find the number of rows in the table. It should be empty before executing the package.

    Rows in table before package execution

    Execute the package. Control Flow shows successful execution.

    Package Execution  - Control Flow tab

    In Data Flow tab, you will notice that the package successfully processed 6 rows. The stored procedure created early in this posted inserted 6 rows into the temporary table.

    Package Execution  - Data Flow tab

    Execute the query select * from dbo.StateProvince in the SQL Server Management Studio (SSMS) to find the 6 rows successfully inserted into the table. The data should match with rows founds in the stored procedure.

    Rows in table after package execution

    The above example illustrated how to create and use temporary table within a package.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

In my app I have a certain control flow that goes like this: DAO
I have control over the HttpServer but not over the ApplicationServer or the Java
I have a control that, upon postback, saves form results back to the database.
I have a control that is created like so: public partial class MYControl :
I have a simple SSIS Project. In the control flow I have three steps:
I have a Data Flow Task and am connecting to a database via an
I have a snippet to create a 'Like' button for our news site: <iframe
I have about 20 data flow tasks arranged into a group in my control
I understand that flow control and context are separated on WF4 but I'm asking
I have a WCF service hosted for internal clients - we have control of

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.