Sunday, December 28, 2014

SSIS - Passing values from Parent to Child package

Passing values from Parent to Child package in SSIS


~Variables


Variables: declared and "Expression" are used to take on runtime all values.

Variables: GetDB  of  System.Object Type

~Execute Sql Task

Execute Sql Task: Sql to get from sys databases online databases.

Resultset:

    Result Name Variable Name
0 User:GetDB


Foreach Loop:

Enumerator:Foreach ADO Enumerator

ADO object source variable:User::GetDB

Variable Mapping:

Variable Index
User:PassDB 0


Execute SQL query:

Declare @TableName SYSNAME
Declare @Database    SYSNAME
Declare @SqlString     NVARCHAR(2000)


SET  @TableName=?
SET  @Database=?
0
SET  @SqlString  = 'SELECT @OutRowCount=COUNT(*)  FROM '+@Database=' sys.tables where name=" +@TableName='"

EXEC sp_executed @SqlString,N'@OutRowCount INT OUTPUT
,@OutRowCount=? OUTPUT


Parameter Mapping:

Variable Name Direction Data Type Parameter  Parameter
User::TableName   Input VARCHAR 0 -1
User:ParentDB        Input VARCHAR 1 -1
UserFlag Output LONG 2 -1


Execute Package Task Editor:

Package

Location:File System
Connection:Child.dtsx
Password:
ExecuteOutOfProcess:false


----Child.dtsx

When you want to pass a variable vaue from parent package.

1.In Child package create a variable say  C_DBName
2.Right click-choose "Package Configuration" , in the drop down list box choose "Parent Package"

  write exact name as it is case sensitive:ServerName

  say map: Table Name: Variable: C_DBNAME

so now the child package has the "Server Name" from parent package.


No comments:

Post a Comment