0% found this document useful (0 votes)
98 views2,769 pages

Atc TutorialSSIS4

This document provides an overview of SQL Server Integration Services (SSIS) including how to deploy, run, develop, and manage packages and packages. It describes the various editions of SQL Server that support SSIS and includes documentation on features, components, tasks, connections managers, and transformations used in SSIS. Quickstarts are provided on common tasks like deploying, running, and developing SSIS packages.

Uploaded by

Pranav K
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
98 views2,769 pages

Atc TutorialSSIS4

This document provides an overview of SQL Server Integration Services (SSIS) including how to deploy, run, develop, and manage packages and packages. It describes the various editions of SQL Server that support SSIS and includes documentation on features, components, tasks, connections managers, and transformations used in SSIS. Quickstarts are provided on common tasks like deploying, running, and developing SSIS packages.

Uploaded by

Pranav K
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2769

Contents

SQL Server Integration Services (SSIS)


Welcome to SQL Server >
Overview
What's New in Integration Services in SQL Server 2016
What's New in Integration Services in SQL Server 2017
Integration Services Features Supported by the Editions of SQL Server
Integration Services Developer Documentation
Integration Services Backward Compatibility
Quickstarts
Deploy
Deploy with SSMS
Deploy with Transact-SQL (SSMS)
Deploy with Transact-SQL (VS Code)
Deploy from the command prompt
Deploy with PowerShell
Deploy with C#
Run
Run with SSMS
Run with Transact-SQL (SSMS)
Run with Transact-SQL (VS Code)
Run from the command prompt
Run with PowerShell
Run with C#
Deploy and run packages in Azure
Tutorial - Deploy and run a package in Azure
Connect to data with Windows Authentication
Save files and connect to file shares
Connect to the SSIS Catalog in Azure
Validate packages deployed to Azure
Run packages in Azure
Schedule packages in Azure
Schedule packages in Azure with SSMS
Migrate to Azure process and tools
Install Integration Services
Installing Integration Services Versions Side by Side
Upgrade Integration Services
Upgrade Integration Services Packages
Upgrade Integration Services Packages Using the SSIS Package Upgrade Wizard
Development and management Tools
Projects and solutions
SSIS DevOps
Standalone SSIS DevOps Tools
User interface
SSIS Designer
Advanced Editor
Group or Ungroup Components
Use Annotations in Packages
SSIS Toolbox
General Page of Integration Services Designers Options
Packages
Create Packages in SQL Server Data Tools
Add Copy of Existing Package
Set Package Properties
View Package Objects
Copy a Package in SQL Server Data Tools
Copy Package Objects
Save Packages
Reuse Control Flow across Packages by Using Control Flow Package Parts
Reuse of Package Objects
Delete Packages
dtutil Utility
Package Upgrade Wizard F1 Help
Package and Project Parameters
Connection Managers
Overview
Data Sources
ADO Connection Manager
ADO.NET Connection Manager
Analysis Services Connection Manager
Add Analysis Services Connection Manager Dialog Box UI Reference
Azure Data Lake Analytics Connection Manager
Azure Data Lake Store Connection Manager
Azure HDInsight Connection Manager
Azure Resource Manager Connection Manager
Azure Storage Connection Manager
Azure Subscription Connection Manager
Excel Connection Manager
File Connection Manager
Add File Connection Manager Dialog Box UI Reference
Suggest Column Types Dialog Box UI Reference
Flat File Connection Manager
FTP Connection Manager
Hadoop Connection Manager
HTTP Connection Manager
MSMQ Connection Manager
Multiple Files Connection Manager
Multiple Flat Files Connection Manager
OData Connection Manager
ODBC Connection Manager
OLE DB Connection Manager
SAP BW Connection Manager
SMTP Connection Manager
SMO Connection Manager
SQL Server Compact Edition Connection Manager
WMI Connection Manager
Control Flow
Overview
Add or Delete a Task or a Container in a Control Flow
Integration Services Containers
Foreach Loop Container
Loop through Excel Files and Tables by Using a Foreach Loop Container
For Loop Container
Sequence Container
Task Host Container
Integration Services Tasks
Analysis Services Execute DDL Task
Analysis Services Processing Task
Azure Blob Download Task
Azure Blob Upload Task
Azure Data Lake Analytics Task
Azure Data Lake Store File System Task
Azure HDInsight Create Cluster Task
Azure HDInsight Delete Cluster Task
Azure HDInsight Hive Task
Azure HDInsight Pig Task
Azure SQL DW Upload Task
Flexible File Task
Back Up Database Task
Bulk Insert Task
CDC Control Task
CDC Control Task Custom Properties
Check Database Integrity Task
Data Flow Task
Data Mining Query Task
Data Mining Query
Data Profiling Task and Viewer
Setup of the Data Profiling Task
Data Profile Viewer
Data Profiling Task
Single Table Quick Profile Form (Data Profiling Task)
Data Profiling Task Editor (Profile Requests Page)
Candidate Key Profile Request Options (Data Profiling Task)
Column Length Distribution Profile Request Options (Data Profiling Task)
Column Null Ratio Profile Request Options (Data Profiling Task)
Column Pattern Profile Request Options (Data Profiling Task)
Column Statistics Profile Request Options (Data Profiling Task)
Column Value Distribution Profile Request Options (Data Profiling Task)
Functional Dependency Profile Request Options (Data Profiling Task)
Value Inclusion Profile Request Options (Data Profiling Task)
Data Profiling Task Editor (General Page)
Incorporate a Data Profiling Task in Package Workflow
Execute Package Task
Execute Process Task
Execute SQL Server Agent Job Task
Execute SQL Task
MERGE in Integration Services Packages
Execute T-SQL Statement Task
Expression Task
File System Task
FTP Task
Hadoop File System Task
Hadoop Hive Task
Hadoop Pig Task
History Cleanup Task
Maintenance Cleanup Task
Message Queue Task
Select Variables
Select a Package
Notify Operator Task
Rebuild Index Task
Reorganize Index Task
Script Task
Select Variables Page
Send Mail Task
Shrink Database Task
Transfer Database Task
Transfer Error Messages Task
Transfer Jobs Task
Transfer Logins Task
Transfer Master Stored Procedures Task
Transfer SQL Server Objects Task
Select Objects to Transfer
Update Statistics Task
Web Service Task
WMI Data Reader Task
WMI Event Watcher Task
XML Task
Validate XML with the XML Task
Precedence Constraints
Data Flow
Overview
Data in Data Flows
Integration Services Data Types
Parsing Data
Comparing String Data
Add or Delete a Component in a Data Flow
Set the Properties of a Data Flow Component
Connect Components in a Data Flow
Integration Services Paths
Resolve Column Reference Editor
Data Viewer
Error Handling in Data
Data Flow Performance Features
Source Assistant
Destination Assistant
Sources and Destinations
ADO NET Source
ADO NET Destination
ADO NET Custom Properties
Azure Blob Source
Azure Blob Destination
Azure Data Lake Store Source
Azure Data Lake Store Destination
Flexible File Source
Flexible File Destination
CDC Flow Components
CDC Source
CDC Source Custom Properties
Extract Change Data Using the CDC Source
CDC Splitter
Direct the CDC Stream According to the Type of Change
Define a State Variable
Data Mining Model Training Destination
Data Mining Model Training Destination Custom Properties
Data Streaming Destination
Walkthrough: Publish an SSIS Package as a SQL View
DataReader Destination
DataReader Destination Custom Properties
Dimension Processing Destination
Dimension Processing Destination Custom Properties
Excel Source
Excel Destination
Excel Custom Properties
Flat File Source
Flat File Destination
HDFS File Source
HDFS File Destination
Flat File Custom Properties
OData Source
Tutorial: Using the OData Source
Provide an OData Source Query at Runtime
OData Source Properties
ODBC Flow Components
ODBC Destination
Load Data by Using the ODBC Destination
ODBC Destination Custom Properties
ODBC Source
Extract Data by Using the ODBC Source
ODBC Source Custom Properties
OLE DB Source
Map Query Parameters to Variables in a Data Flow Component
Extract Data by Using the OLE DB Source
OLE DB Destination
Load Data by Using the OLE DB Destination
OLE DB Custom Properties
Partition Processing Destination
Partition Processing Destination Custom Properties
Power Query Source
Raw File Source
Raw File Destination
Raw File Custom Properties
Recordset Destination
Use a Recordset Destination
Recordset Destination Custom Properties
SAP BW Source
SAP BW Source Editor (Connection Manager Page)
SAP BW Source Editor (Columns Page)
SAP BW Source Editor (Error Output Page)
SAP BW Source Editor (Advanced Page)
Look Up RFC Destination
Look Up Process Chain
Request Log
Preview
SAP BW Destination
SAP BW Destination Editor (Connection Manager Page)
SAP BW Destination Editor (Mappings Page)
SAP BW Destination Editor (Error Output Page)
SAP BW Destination Editor (Advanced Page)
Look Up InfoPackage
Create New InfoObject
Create InfoCube for Transaction Data
Look Up InfoObject
Create InfoSource
Create InfoSource for Transaction Data
Create InfoSource for Master Data
Create InfoPackage
SQL Server Compact Edition Destination
SQL Server Compact Edition Destination Custom Properties
SQL Server Destination
Bulk Load Data by Using the SQL Server Destination
SQL Server Destination Custom Properties
Transformations
Overview
Aggregate Transformation
Aggregate Values in a Dataset by Using the Aggregate Transformation
Audit Transformation
Balanced Data Distributor Transformation
Character Map Transformation
Conditional Split Transformation
Split a Dataset by Using the Conditional Split Transformation
Copy Column Transformation
Data Conversion Transformation
Convert Data to a Different Data Type by Using the Data Conversion Transformation
Data Mining Query Transformation
DQS Cleansing Transformation
DQS Cleansing Connection Manager
Apply Data Quality Rules to Data Source
Map Columns to Composite Domains
Derived Column Transformation
Derive Column Values by Using the Derived Column Transformation
Export Column Transformation
Fuzzy Grouping Transformation
Identify Similar Data Rows by Using the Fuzzy Grouping Transformation
Fuzzy Lookup Transformation
Import Column Transformation
Lookup Transformation
Implement a Lookup in No Cache or Partial Cache Mode
Implement a Lookup Transformation in Full Cache Mode Using the Cache
Connection Manager
Implement a Lookup Transformation in Full Cache Mode Using the OLE DB
Connection Manager
Create and Deploy a Cache for the Lookup Transformation
Create Relationships
Cache Transform
Cache Connection Manager
Merge Transformation
Merge Join Transformation
Extend a Dataset by Using the Merge Join Transformation
Sort Data for the Merge and Merge Join Transformations
Multicast Transformation
OLE DB Command Transformation
Percentage Sampling Transformation
Pivot Transformation
Row Count Transformation
Row Sampling Transformation
Script Component
Slowly Changing Dimension Transformation
Configure Outputs Using the Slowly Changing Dimension Wizard
Slowly Changing Dimension Wizard F1 Help
Welcome to the Slowly Changing Dimension Wizard
Select a Dimension Table and Keys (Slowly Changing Dimension Wizard)
Slowly Changing Dimension Columns (Slowly Changing Dimension Wizard)
Fixed and Changing Attribute Options (Slowly Changing Dimension Wizard
Historical Attribute Options (Slowly Changing Dimension Wizard)
Inferred Dimension Members (Slowly Changing Dimension Wizard)
Finish the Slowly Changing Dimension Wizard
Sort Transformation
Term Extraction Transformation
Term Lookup Transformation
Union All Transformation
Merge Data by Using the Union All Transformation
Unpivot Transformation
Transform Data with Transformations
Transformation Custom Properties
XML Source
Extract Data by Using the XML Source
XML Source Custom Properties
Variables
Variables Window
System Variables
Expressions
Overview
Examples of Advanced Integration Services Expressions
Use Property Expressions in Packages
Enumerated Constants in Property Expressions
Add or Change a Property Expression
Expressions Page
Property Expressions Editor
Expression Builder
Integration Services Data Types in Expressions
Data Truncation (SSIS)
String Padding (SSIS)
Syntax (SSIS)
Identifiers (SSIS)
Literals (SSIS)
Operators (SSIS Expression)
Operator Precedence and Associativity
Cast (SSIS Expression)
() (Parentheses) (SSIS Expression)
+ (Add) (SSIS)
+ (Concatenate) (SSIS Expression)
- (Subtract) (SSIS Expression)
- (Negate) (SSIS Expression)
* (Multiply) (SSIS Expression)
Divide (SSIS Expression)
(Modulo) (SSIS Expression)
|| (Logical OR) (SSIS Expression)
&& (Logical AND) (SSIS Expression)
! (Logical Not) (SSIS Expression)
| (Bitwise Inclusive OR) (SSIS Expression)
^ (Bitwise Exclusive OR) (SSIS Expression)
& (Bitwise AND) (SSIS Expression)
~ (Bitwise Not) (SSIS Expression)
== (Equal) (SSIS Expression)
!= (Unequal) (SSIS Expression)
> (Greater Than) (SSIS Expression)
< (Less Than) (SSIS Expression)
>= (Greater Than or Equal To) (SSIS Expression)
<= (Less Than or Equal To) (SSIS Expression)
? : (Conditional) (SSIS Expression)
Functions (SSIS Expression)
ABS (SSIS Expression)
CEILING (SSIS Expression)
CODEPOINT (SSIS Expression)
DATEADD (SSIS Expression)
DATEDIFF (SSIS Expression)
DATEPART (SSIS Expression)
DAY (SSIS Expression)
EXP (SSIS Expression)
FINDSTRING (SSIS Expression)
FLOOR (SSIS Expression)
GETDATE (SSIS Expression)
GETUTCDATE (SSIS Expression)
HEX (SSIS Expression)
ISNULL (SSIS Expression)
LEFT (SSIS Expression)
LEN (SSIS Expression)
LN (SSIS Expression)
LOG (SSIS Expression)
LOWER (SSIS Expression)
LTRIM (SSIS Expression)
MONTH (SSIS Expression)
NULL (SSIS Expression)
POWER (SSIS Expression)
REPLACE (SSIS Expression)
REPLACENULL (SSIS Expression)
REPLICATE (SSIS Expression)
REVERSE (SSIS Expression)
RIGHT (SSIS Expression)
ROUND (SSIS Expression)
RTRIM (SSIS Expression)
SIGN (SSIS Expression)
SQRT (SSIS Expression)
SQUARE (SSIS Expression)
SUBSTRING (SSIS Expression)
TOKEN (SSIS Expression)
TOKENCOUNT (SSIS Expression)
TRIM (SSIS Expression)
UPPER (SSIS Expression)
YEAR (SSIS Expression)
Event Handlers
Queries
Transactions
Deploy Integration Services (SSIS) Projects and Packages
Legacy Package Deployment (SSIS)
Run Integration Services (SSIS) Packages
Execute Package Utility (dtexecui)
dtexec Utility
Restart Packages by Using Checkpoints
SQL Server Agent Jobs for Packages
Load-Balancing Packages on Remote Servers by Using SQL Server Agent
Scale Out
Overview
Get started with SSIS Scale Out on a single computer
Walkthrough: Set up Integration Services Scale Out
Run packages in Scale Out
Add a Scale Out Worker with Scale Out Manager
Scale Out Master
Scale Out Worker
Scale Out Manager
Change the account for Scale Out logging
Manage certificates for Scale Out
High availability for Scale Out
High availability via SQL Server failover cluster instance
Troubleshoot Scale Out
Catalog and Server
SSIS Catalog
View the List of Packages on the SSIS Server
SSIS Catalog Transact-SQL Reference
SSIS Catalog dialog boxes
Browse All Principals Dialog Box
Configure Dialog Box
Folder Properties Dialog Box
Package Properties Dialog Box
Project Properties Dialog Box
Project Versions Dialog Box
Set Parameter Value Dialog Box
Validate Dialog Box
Integration Services (SSIS) Service
Package Management (SSIS Service)
Events Logged by the Integration Services Service
Integration Services (SSIS) in a Cluster
Packages
Overview
Access Control for Sensitive Data in Packages
Identify the Source of Packages with Digital Signatures
Integration Services Roles (SSIS Service)
Monitor Running Packages and Other Operations
Events Logged by an Integration Services Package
Integration Services (SSIS) Logging
Performance Counters
Troubleshoot
Overview
Troubleshoot and Debug for Package Development
Troubleshooting Tools for Package Development
Debugging Control Flow
Debugging Script
Debugging Data Flow
Troubleshooting Tools for Package Connectivity
Troubleshooting Tools for Package Execution
Troubleshooting Reports for Package Execution
Generating Dump Files for Package Execution
catalog reference
Overview
catalog.catalog_properties
catalog.effective_object_permissions
catalog.environment_variables
catalog.environment_references
catalog.environments
catalog.event_message_context
catalog.event_messages
catalog.executable_statistics
catalog.executables
catalog.execution_component_phases
catalog.execution_data_statistics
catalog.execution_data_taps
catalog.execution_parameter_values
catalog.execution_property_override_values
catalog.executions
catalog.explicit_object_permissions
catalog.extended_operation_info
catalog.folders
catalog.object_parameters
catalog.object_versions
catalog.operation_messages
catalog.operations
catalog.packages
catalog.projects
catalog.validations
catalog.master_properties
catalog.worker_agents
Stored Procedures
Overview
Add
catalog.add_data_tap
catalog.add_data_tap_by_guid
catalog.add_execution_worker
catalog.check_schema_version
catalog.clear_object_parameter_value
catalog.configure_catalog
Create
catalog.create_customized_logging_level
catalog.create_environment
catalog.create_environment_reference
catalog.create_environment_variable
catalog.create_execution
catalog.create_execution_dump
catalog.create_folder
Delete
catalog.delete_customized_logging_level
catalog.delete_environment
catalog.delete_environment_reference
catalog.delete_environment_variable
catalog.delete_folder
catalog.delete_project
catalog.deny_permission
Deploy
catalog.deploy_packages
catalog.deploy_project
catalog.disable_worker_agent
catalog.enable_worker_agent
Get
catalog.get_parameter_values
catalog.get_project
catalog.grant_permission
Move
catalog.move_environment
catalog.move_project
catalog.remove_data_tap
Rename
catalog.rename_customized_logging_level
catalog.rename_environment
catalog.rename_folder
catalog.restore_project
catalog.revoke_permission
Set
catalog.set_customized_logging_level_description
catalog.set_customized_logging_level_value
catalog.set_environment_property
catalog.set_environment_reference_type
catalog.set_environment_variable_property
catalog.set_environment_variable_protection
catalog.set_environment_variable_value
catalog.set_execution_parameter_value
catalog.set_execution_property_override_value
catalog.set_folder_description
catalog.set_object_parameter_value
catalog.set_worker_agent_property
catalog.startup
catalog.start_execution
catalog.stop_operation
Update
catalog.update_logdb_info (SSISDB Database)
catalog.update_master_address (SSISDB Database)
Validate
catalog.validate_package
catalog.validate_project
Cleanup
catalog.cleanup_server_execution_keys
catalog.cleanup_server_log
System function - dm_execution_performance_counters
Errors and Events Reference
Integration Services Error and Message Reference
Scripting and programming
Integration Services Programming Overview
Understanding Synchronous and Asynchronous Transformations
Working with Connection Managers Programmatically
Extending Packages with Scripting
Comparing the Script Task and the Script Component
Comparing Scripting Solutions and Custom Objects
Referencing Other Assemblies in Scripting Solutions
Debug a Script by Setting Breakpoints in a Script Task and Script Component
Extending the Package with the Script Task
Configuring the Script Task in the Script Task Editor
Coding and Debugging the Script Task
Using Variables in the Script Task
Connecting to Data Sources in the Script Task
Raising Events in the Script Task
Logging in the Script Task
Returning Results from the Script Task
Script Task Examples
Detecting an Empty Flat File with the Script Task
Finding Installed Printers with the Script Task
Gathering a List for the ForEach Loop with the Script Task
Monitoring Performance Counters with the Script Task
Querying the Active Directory with the Script Task
Sending an HTML Mail Message with the Script Task
Sending to a Remote Private Message Queue with the Script Task
Working with Excel Files with the Script Task
Working with Images with the Script Task
Extending the Data Flow with the Script Component
Configuring the Script Component in the Script Component Editor
Coding and Debugging the Script Component
Understanding the Script Component Object Model
Using Variables in the Script Component
Connecting to Data Sources in the Script Component
Raising Events in the Script Component
Logging in the Script Component
Develop Specific Types of Script Components
Creating a Source with the Script Component
Creating a Synchronous Transformation with the Script Component
Creating an Asynchronous Transformation with the Script Component
Creating a Destination with the Script Component
Additional Script Component Examples
Creating an ODBC Destination with the Script Component
Enhancing an Error Output with the Script Component
Parsing Non-Standard Text File Formats with the Script Component
Simulating an Error Output for the Script Component
Extending Packages with Custom Objects
Developing Custom Objects for Integration Services
Persisting Custom Objects
Building, Deploying, and Debugging Custom Objects
Support multi-targeting in your custom components
Developing a Custom Task
Creating a Custom Task
Coding a Custom Task
Connecting to Data Sources in a Custom Task
Raising and Defining Events in a Custom Task
Adding Support for Debugging in a Custom Task
Developing a User Interface for a Custom Task
Developing a Custom Connection Manager
Creating a Custom Connection Manager
Coding a Custom Connection Manager
Developing a User Interface for a Custom Connection Manager
Developing a Custom Log Provider
Creating a Custom Log Provider
Coding a Custom Log Provider
Developing a User Interface for a Custom Log Provider
Developing a Custom ForEach Enumerator
Creating a Custom Foreach Enumerator
Coding a Custom Foreach Enumerator
Developing a User Interface for a Custom ForEach Enumerator
Developing a Custom Data Flow Component
Creating a Custom Data Flow Component
Design-time Methods of a Data Flow Component
Run-time Methods of a Data Flow Component
Execution Plan and Buffer Allocation
Working with Data Types in the Data Flow
Validating a Data Flow Component
Implementing External Metadata
Raising and Defining Events in a Data Flow Component
Logging and Defining Log Entries in a Data Flow Component
Using Error Outputs in a Data Flow Component
Developing a User Interface for a Data Flow Component
Upgrading the Version of a Data Flow Component
Subcategories of Articles
Developing a Custom Destination Component
Developing a Custom Source Component
Developing a Custom Transformation Component with Asynchronous Outputs
Developing a Custom Transformation Component with Synchronous Outputs
Developing Data Flow Components with Multiple Inputs
Developing Specific Types of Data Flow Components
Adding Connections Programmatically
Building Packages Programmatically
Creating a Package Programmatically
Adding Tasks Programmatically
Connecting Tasks Programmatically
Working with Variables Programmatically
Handling Events Programmatically
Enabling Logging Programmatically
Adding the Data Flow Task Programmatically
Discovering Data Flow Components Programmatically
Adding Data Flow Components Programmatically
Connecting Data Flow Components Programmatically
Selecting Input Columns Programmatically
Saving a Package Programmatically
Running and Managing Packages Programmatically
Understanding the Differences between Local and Remote Execution
Loading and Running a Local Package Programmatically
Loading and Running a Remote Package Programmatically
Loading the Output of a Local Package
Enumerating Available Packages Programmatically
Managing Packages and Folders Programmatically
Managing Running Packages Programmatically
Managing Package Roles Programmatically (SSIS Service)
Integration Services Language Reference
Azure Feature Pack for Integration Services (SSIS)
Hadoop and HDFS Support in Integration Services (SSIS)
Microsoft connector for Oracle
Oracle Connection Manager
Oracle source
Oracle destination
Data type support
Microsoft connector for Teradata
Teradata connection manager
Teradata source
Teradata destination
Data type support
Microsoft Connectors for Oracle and Teradata by Attunity
SQL Server Import and Export Wizard
Get started with this simple example of the Import and Export Wizard
Start the SQL Server Import and Export Wizard
Connect to Data Sources with the SQL Server Import and Export Wizard
Connect to a SQL Server Data Source (SQL Server Import and Export Wizard)
Connect to an Oracle Data Source (SQL Server Import and Export Wizard)
Connect to a Flat File Data Source (SQL Server Import and Export Wizard)
Connect to an Excel Data Source (SQL Server Import and Export Wizard)
Connect to an Access Data Source (SQL Server Import and Export Wizard)
Connect to Azure Blob Storage (SQL Server Import and Export Wizard)
Connect to an ODBC Data Source (SQL Server Import and Export Wizard)
Connect to a PostgreSQL Data Source (SQL Server Import and Export Wizard)
Connect to a MySQL Data Source (SQL Server Import and Export Wizard)
Steps in the SQL Server Import and Export Wizard
Welcome to SQL Server Import and Export Wizard
Choose a Data Source (SQL Server Import and Export Wizard)
Choose a Destination (SQL Server Import and Export Wizard)
Create Database (SQL Server Import and Export Wizard)
Specify Table Copy or Query (SQL Server Import and Export Wizard)
Provide a Source Query (SQL Server Import and Export Wizard)
Select Source Tables and Views (SQL Server Import and Export Wizard)
Configure Flat File Destination (SQL Server Import and Export Wizard)
Convert Types without Conversion Checking (SQL Server Import and Export Wizard)
Column Mappings (SQL Server Import and Export Wizard)
Data Type Mapping (SQL Server Import and Export Wizard)
Review Data Type Mapping (SQL Server Import and Export Wizard)
Column Conversion Details Dialog Box (SQL Server Import and Export Wizard)
Create Table SQL Statement (SQL Server Import and Export Wizard)
Preview Data Dialog Box (SQL Server Import and Export Wizard)
Save and Run Package (SQL Server Import and Export Wizard)
Save SSIS Package (SQL Server Import and Export Wizard)
Complete the Wizard (SQL Server Import and Export Wizard)
Performing Operation (SQL Server Import and Export Wizard)
Import from or export to Excel
Load data to SQL Server or SQL Database
Load data to Azure Synapse Analytics
Change Data Capture
Overview
Specify an Interval of Change Data
Determine Whether the Change Data Is Ready
Prepare to Query for the Change Data
Create the Function to Retrieve the Change Data
Retrieve and Understand the Change Data
Process Inserts, Updates, and Deletes
Apply the Changes to the Destination
Perform an Incremental Load of Multiple Tables
Change Data Capture for Oracle by Attunity
Change Data Capture Designer for Oracle by Attunity
The CDC Designer Console Introduction
Oracle CDC Instance Data Types
Error Handling
The Oracle CDC Instance
The Oracle CDC Databases
Troubleshoot
Change Data Capture Designer for Oracle by Attunity F1 Help Reference
Access the CDC Designer Console
Manage a CDC Service
Manage a CDC Instance
Use the New Instance Wizard
Create the SQL Server Change Database
Connect to an Oracle Source Database
Connect to Oracle
Select Oracle Tables and Columns
Select Oracle Tables for Capturing Changes
Make Changes to the Tables Selected for Capturing Changes
Generate and Run the Supplemental Logging Script
Generate Mirror Tables and CDC Capture Instances
Finish
Edit Instance Properties
Edit the Oracle Database Properties
Edit Tables
Add Tables to a CDC Instance
Edit the Table Properties
Review and Generate Supplemental Logging Scripts
Edit the Advanced Properties
Change Data Capture Designer for Oracle by Attunity How to Guide
How to Manage a CDC Service from the CDC Designer Console
How to Create the SQL Server Change Database Instance
How to Manage a CDC Instance
How to Edit the CDC Instance Properties
How to View the CDC Instance Properties
SQL Server Connection for Instance Creation
Advanced Connection Properties
Oracle Credentials for Running Script
Oracle Supplemental Logging Script
CDC Instance Deployment Script
SQL Server Connection Required Permissions for the CDC Designer
Change Data Capture Service for Oracle by Attunity
Change Data Capture Service for Oracle by Attunity System Architecture
The Oracle CDC Service
High Availability Support
SQL Server Connection Required Permissions for the CDC Service
User Roles
Working with the Oracle CDC Service
Change Data Capture Service for Oracle by Attunity F1 Help
Connection to SQL Server
Connection to SQL Server for Delete
Create and Edit an Oracle CDC Service
Manage an Oracle CDC Service
Prepare SQL Server for CDC
Prepare SQL Server for Oracle CDC-View Script
Work with CDC Services
Change Data Capture Service for Oracle by Attunity How to Guide
How to Create and Edit a CDC Service
How to Manage a Local CDC Service
How to Prepare SQL Server for CDC
How to Use the CDC Service Command-Line Interface
How to Work with CDC Services
Microsoft Connector for SAP BW
Installing the Microsoft Connector for SAP BW
Microsoft Connector for SAP BW Components
Microsoft Connector for SAP BW F1 Help
Certification by SAP
Tutorials
Create a Package
Lesson 1: Create a Project and Basic Package
Lesson 1-1 - Creating a New Integration Services Project
Lesson 1-2 - Adding and Configuring a Flat File Connection Manager
Lesson 1-3 - Adding and Configuring an OLE DB Connection Manager
Lesson 1-4 - Adding a Data Flow Task to the Package
Lesson 1-5 - Adding and Configuring the Flat File Source
Lesson 1-6 - Adding and Configuring the Lookup Transformations
Lesson 1-7 - Adding and Configuring the OLE DB Destination
Lesson 1-8 - Making the Lesson 1 Package Easier to Understand
Lesson 1-9 - Testing the Lesson 1 Tutorial Package
Lesson 2: Add Looping
Lesson 2-1 - Copying the Lesson 1 Package
Lesson 2-2 - Adding and Configuring the Foreach Loop Container
Lesson 2-3 - Modifying the Flat File Connection Manager
Lesson 2-4 - Testing the Lesson 2 Tutorial Package
Lesson 3: Add Logging
Lesson 3-1 - Copying the Lesson 2 Package
Lesson 3-2 - Adding and Configuring Logging
Lesson 3-3 - Testing the Lesson 3 Tutorial Package
Lesson 4: Add Error Flow Redirection
Lesson 4-1 - Copying the Lesson 3 Package
Lesson 4-2 - Creating a Corrupted File
Lesson 4-3 - Adding Error Flow Redirection
Lesson 4-4 - Adding a Flat File Destination
Lesson 4-5 - Testing the Lesson 4 Tutorial Package
Lesson 5: Add Package Configurations for the Package Deployment Model
Lesson 5-1 - Copying the Lesson 4 Package
Lesson 5-2 - Enabling and Configuring Package Configurations
Lesson 5-3 - Modifying the Directory Property Configuration Value
Lesson 5-4 - Testing the Lesson 5 Tutorial Package
Lesson 6: Using Parameters with the Project Deployment Model
Lesson 6-1 - Copying the Lesson 5 Package
Lesson 6-2 - Converting the Project to the Project Deployment Model
Lesson 6-3 - Testing the Lesson 6 Package
Lesson 6-4 - Deploying the Lesson 6 Package
Deploy Packages
Lesson 1: Preparing to Create the Deployment Bundle
Lesson 1-1 - Creating Working Folders and Environment Variables
Lesson 1-2 - Creating the Deployment Project
Lesson 1-3 - Adding Packages and Other Files
Lesson 1-4 - Adding Package Configurations
Lesson 1-5 - Testing the Updated Packages
Lesson 2: Create the Deployment Bundle
Lesson 2-1 - Building the Deployment Utility
Lesson 2-2 - Verifying the Deployment Bundle
Lesson 3: Install Packages
Lesson 3-1 - Copying the Deployment Bundle
Lesson 3-2 - Running the Package Installation Wizard
Lesson 3-3 - Testing the Deployed Packages
Resources
SSIS forum >>
Stack Overflow >>
SSIS blog >>
Product feedback >>
SQL Server Integration Services
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
SQL Server Integration Services is a platform for building enterprise-level data integration and data
transformations solutions. Use Integration Services to solve complex business problems by copying or
downloading files, loading data warehouses, cleansing and mining data, and managing SQL Server objects and
data.
Integration Services can extract and transform data from a wide variety of sources such as XML data files, flat files,
and relational data sources, and then load the data into one or more destinations.
Integration Services includes a rich set of built-in tasks and transformations, graphical tools for building packages,
and the Integration Services Catalog database, where you store, run, and manage packages.
You can use the graphical Integration Services tools to create solutions without writing a single line of code. You
can also program the extensive Integration Services object model to create packages programmatically and code
custom tasks and other package objects.

Get SQL Server Integration Services


For info about installing SQL Server Integration Services with SQL Server, and about additional downloads you
may want or need, see Install Integration Services.

Resources
Get help in the SSIS forum
Get help on Stack Overflow
Follow the SSIS team blog
Report issues & request features
Get the docs on your PC
What's New in Integration Services in SQL Server
2016
11/5/2020 • 16 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
This topic describes the features that have been added or updated in SQL Server 2016 Integration Services. It also
includes features added or updated in the Azure Feature Pack for Integration Services (SSIS) during the SQL Server
2016 time frame.

New for SSIS in Azure Data Factory


With the public preview of Azure Data Factory version 2 in September 2017, you can now do the following things:
Deploy packages to the SSIS Catalog database (SSISDB) on Azure SQL Database.
Run packages deployed to Azure on the Azure-SSIS Integration Runtime, a component of Azure Data Factory
version 2.
For more info, see Lift and shift SQL Server Integration Services workloads to the cloud.
These new capabilities require SQL Server Data Tools (SSDT) version 17.2 or later, but do not require SQL Server
2017 or SQL Server 2016. When you deploy packages to Azure, the Package Deployment Wizard always upgrades
the packages to the latest package format.

2016 improvements by category


Manageability
Better deployment
SSISDB Upgrade Wizard
Support for Always On in the SSIS Catalog
Incremental package deployment
Support for Always Encrypted in the SSIS Catalog
Better debugging
New ssis_logreader database-level role in the SSIS catalog
New RuntimeLineage logging level in the SSIS catalog
New custom logging level in the SSIS catalog
Column names for errors in the data flow
Expanded support for error column names
Support for server-wide default logging level
New IDTSComponentMetaData130 interface in the API
Better package management
Improved experience for project upgrade
AutoAdjustBufferSize property automatically calculates buffer size for data flow
Reusable control flow templates
New templates renamed as parts
Connectivity
Expanded connectivity on premises
Support for OData v4 data sources
Explicit support for Excel 2013 data sources
Support for the Hadoop file system (HDFS)
Expanded support for Hadoop and HDFS
HDFS File Destination now supports ORC file format
ODBC components updated for SQL Server 2016
Explicit support for Excel 2016 data sources
Connector for SAP BW for SQL Server 2016 released
Connectors v4.0 for Oracle and Teradata released
Connectors for Analytics Platform System (PDW) Appliance Update 5 released
Expanded connectivity to the cloud
Azure Storage connectors and Hive and Pig tasks for HDInsight - Azure Feature Pack for SSIS
released for SQL Server 2016
Support for Microsoft Dynamics online resources released in Service Pack 1
Support for Azure Data Lake Store released
Support for Azure Synapse Analytics released
Usability and productivity
Better install experience
Upgrade blocked when SSISDB belongs to an Availability Group
Better design experience
SSIS Designer creates and maintains packages for SQL Server 2016, 2014, or 2012
Multiple designer improvements and bug fixes.
Better management experience in SQL Server Management Studio
Improved performance for SSIS Catalog views
Other enhancements
Balanced Data Distributor transformation is now part of SSIS
Data Feed Publishing Components are now part of SSIS
Support for Azure Blob Storage in the SQL Server Import and Export Wizard
Change Data Capture Designer and Service for Oracle for Microsoft SQL Server 2016 released
CDC components updated for SQL Server 2016
Analysis Services Execute DDL Task updated
Analysis Services tasks support tabular models
Support for Built-in R Services
Rich XML validation output in the XML Task

Manageability
Better deployment
SSISDB Upgrade Wizard
Run the SSISDB Upgrade Wizard to upgrade the SSIS Catalog database, SSISDB, when the database is older than
the current version of the SQL Server instance. This occurs when one of the following conditions is true.
You restored the database from an older version of SQL Server.
You did not remove the database from an Always On Availability Group before upgrading the SQL Server
instance. This prevents the automatic upgrade of the database. For more info, see Upgrading SSISDB in an
availability group.
For more info, see SSIS Catalog (SSISDB).
Support for Always On in the SSIS Catalog
The Always On Availability Groups feature is a high-availability and disaster-recovery solution that provides an
enterprise-level alternative to database mirroring. An availability group supports a failover environment for a
discrete set of user databases known as availability databases that fail over together. For more information, see
Always On Availability Groups.
In SQL Server 2016, SSIS introduces new capabilities that let you easily deploy to a centralized SSIS Catalog (i.e.
SSISDB user database). In order to provide high availability for the SSISDB database and its contents - projects,
packages, execution logs, and so on - you can add the SSISDB database to an Always On Availability Group, just
like any other user database. When a failover occurs, one of the secondary nodes automatically becomes the new
primary node.
For a detailed overview and step-by-step instructions for enabling Always On for SSISDB, see SSIS Catalog.
Incremental package deployment
The Incremental Package Deployment feature lets you deploy one or more packages to an existing or new project
without deploying the whole project. You can incrementally deploy packages by using the following tools.
Deployment Wizard
SQL Server Management Studio (which uses the Deployment Wizard)
SQL Server Data Tools (Visual Studio) (which also uses the Deployment Wizard)
Stored procedures
The Management Object Model (MOM) API
For more info, see Deploy Integration Services (SSIS) Projects and Packages.
Support for Always Encrypted in the SSIS Catalog
SSIS already supports the Always Encrypted feature in SQL Server. For more info, see the following blog posts.
SSIS with Always Encrypted
Lookup transformation with Always Encrypted
Better debugging
New ssis_logreader database-level role in the SSIS catalog
In previous versions of the SSIS catalog, only users in the ssis_admin role can access the views that contain
logging output. There is now a new ssis_logreader database-level role that you can use to grant permissions to
access the views that contain logging output to users who aren't administrators.
There is also a new ssis_monitor role. This role supports Always On and is for internal use only by the SSIS
catalog.
New RuntimeLineage logging level in the SSIS catalog
The new RuntimeLineage logging level in the SSIS catalog collects the data required to track lineage information
in the data flow. You can parse this lineage information to map the lineage relationship between tasks. ISVs and
developers can build custom lineage mapping tools with this information.
New custom logging level in the SSIS catalog
Previous versions of the SSIS catalog let you choose from four built-in logging levels when you run a package:
None, Basic, Performance, or Verbose . SQL Server 2016 adds the RuntimeLineage logging level. In addition,
you can now create and save multiple customized logging levels in the SSIS catalog, and pick the logging level to
use every time you run a package. For each customized logging level, select only the statistics and events you want
to capture. Optionally include the event context to see variable values, connection strings, and task properties. For
more info, see Enable Logging for Package Execution on the SSIS Server.
Column names for errors in the data flow
When you redirect rows in the data flow that contain errors to an error output, the output contains a numeric
identifier for the column in which the error occurred, but does not display the name of the column. There are now
several ways to find or display the name of the column in which the error occurred.
When you configure logging, select the DiagnosticEx event for logging. This event writes a data flow
column map to the log. You can then look up the column name in this column map by using the column
identifier captured by an error output. For more info, see Error Handling in Data.
In the Advanced Editor, you can see the column name for the upstream column when you view the
properties of an input or output column of a data flow component.
To see the names of the columns in which the error occurred, attach a Data Viewer to an error output. The
Data Viewer now displays both the description of the error and the name of the column in which the error
occurred.
In the Script Component or a custom data flow component, call the new GetIdentificationStringByID method
of the IDTSComponentMetadata100 interface.
For more info about this improvement, see the following blog post by SSIS developer Bo Fan: Error Column
Improvements for SSIS Data Flow.

NOTE
(This support has been expanded in subsequent releases. For more info, see Expanded support for error column names and
New IDTSComponentMetaData130 interface in the API.)

Expanded support for error column names


The DiagnosticEx event now logs column information for all input and output columns, not just lineage columns.
As a result we now call the output a pipeline column map instead of a pipeline lineage map.
The method GetIdentificationStringByLineageID has been renamed to GetIdentificationStringByID. For more info,
see Column names for errors in the data flow.
For more info about this change and about the error column improvement, see the following updated blog post.
Error Column Improvements for SSIS Data Flow (Updated for CTP3.3)

NOTE
(In RC0, this method has been moved to the new IDTSComponentMetaData130 interface. For more info, see New
IDTSComponentMetaData130 interface in the API.)

Support for server-wide default logging level


In SQL Server Ser ver Proper ties , under the Ser ver logging level property, you can now select a default
server-wide logging level. You can pick from one of the built-in logging levels - basic, none, verbose, performance,
or runtime lineage - or you can pick an existing customized logging level. The selected logging level applies to all
packages deployed to the SSIS Catalog. It also applies by default to a SQL Agent job step that runs an SSIS
package.
New IDTSComponentMetaData130 interface in the API
The new IDTSComponentMetaData130 interface adds new functionality in SQL Server 2016 to the existing
IDTSComponentMetaData100 interface, especially the GetIdentificationStringByID method. (The
GetIdentificationStringByID method is moved to the new interface from the IDTSComponentMetaData100
interface.)There are also new IDTSInputColumn130 and IDTSOutputColumn130 interfaces, both of which provide
the LineageIdentificationString property. For more info, see Column names for errors in the data flow.
Better package management
Improved experience for project upgrade
When you upgrade SSIS projects from previous versions to the current version, the project-level connection
managers continue to work as expected and the package layout and annotations are retained.
AutoAdjustBufferSize property automatically calculates buffer size for data flow
When you set the value of the new AutoAdjustBufferSize property to true , the data flow engine automatically
calculates the buffer size for the data flow. For more info, see Data Flow Performance Features.
Reusable control flow templates
Save a commonly used control flow task or container to a standalone template file and reuse it multiple times in
one or more packages in a project by using control flow templates. This reusability makes SSIS packages easier to
design and maintain. For more info, see Reuse Control Flow across Packages by Using Control Flow Package Parts.
New templates renamed as parts
The new reusable control flow templates released in CTP 3.0 have been renamed as control flow parts or package
parts. For more info about this feature, see Reuse Control Flow across Packages by Using Control Flow Package
Parts.

Connectivity
Expanded connectivity on premises
Support for OData v4 data sources
The OData Source and the OData Connection Manager now support the OData v3 and v4 protocols.
For OData V3 protocol, the component supports the ATOM and JSON data formats .
For OData V4 protocol, the component supports the JSON data format .
For more info, see OData Source.
Explicit support for Excel 2013 data sources
The Excel Connection Manager, the Excel Source and the Excel Destination, and the SQL Server Import and Export
Wizard now provide explicit support for Excel 2013 data sources.
Support for the Hadoop file system (HDFS)
Support for HDFS contains connection managers to connect to Hadoop clusters and tasks to do common HDFS
operations. For more info, see Hadoop and HDFS Support in Integration Services (SSIS).
Expanded support for Hadoop and HDFS
The Hadoop Connection Manager now supports both Basic and Kerberos authentication. For more info, see
Hadoop Connection Manager.
The HDFS File Source and the HDFS File Destination how support both Text and Avro format. For more info,
see HDFS File Source and HDFS File Destination.
The Hadoop File System task now supports the CopyWithinHadoop option in addition to the CopyToHadoop
and the CopyFromHadoop options. For more info, see Hadoop File System Task.
HDFS File Destination now supports ORC file format
The HDFS File Destination now supports the ORC file format in addition to Text and Avro. (The HDFS File Source
supports only Text and Avro.) For more info about this component, see HDFS File Destination.
ODBC components updated for SQL Server 2016
The ODBC Source and Destination components have been updated to provide full compatibility with SQL Server
2016. There is no new functionality and there are no changes in behavior.
Explicit support for Excel 2016 data sources
The Excel Connection Manager, the Excel Source, and the Excel Destination now provide explicit support for Excel
2016 data sources.
Connector for SAP BW for SQL Server 2016 released
The Microsoft® Connector for SAP BW for Microsoft SQL Server® 2016 has been released as part of the SQL
Server 2016 Feature Pack. To download components of the Feature Pack, see Microsoft® SQL Server® 2016
Feature Pack.
Connectors v4.0 for Oracle and Teradata released
The Microsoft Connectors v4.0 for Oracle and Teradata have been released. To download the connectors, see
Microsoft Connectors v4.0 for Oracle and Teradata.
Connectors for Analytics Platform System (PDW) Appliance Update 5 released
The destination adapters for loading data into PDW with AU5 have been released. To download the adapters, see
Analytics Platform System Appliance Update 5 Documentation and Client Tools.
Expanded connectivity to the cloud
Azure Feature Pack for SSIS released for SQL Server 2016
The Azure Feature Pack for Integration Services has been released for SQL Server 2016. The feature pack contains
connection managers to connect to Azure data sources and tasks to do common Azure operations. For more info,
see Azure Feature Pack for Integration Services (SSIS).
Support for Microsoft Dynamics online resources released in Service Pack 1
With SQL Server 2016 Service Pack 1 installed, the OData Source and OData Connection Manager now support
connecting to the OData feeds of Microsoft Dynamics AX Online and Microsoft Dynamics CRM Online.
Support for Azure Data Lake Store released
The latest version of the Azure Feature Pack includes a connection manager, source, and destination to move data
to and from Azure Data Lake Store. For more info, see Azure Feature Pack for Integration Services (SSIS)
Support for Azure Synapse Analytics released
The latest version of the Azure Feature Pack includes the Azure SQL DW Upload task for populating Azure Synapse
Analytics with data. For more info, see Azure Feature Pack for Integration Services (SSIS)

Usability and productivity


Better install experience
Upgrade blocked when SSISDB belongs to an Availability Group
If the SSIS catalog database (SSISDB) belongs to an Always On Availability Group, you have to remove SSISDB
from the availability group, upgrade SQL Server, then add SSISDB back to the availability group. For more info, see
Upgrading SSISDB in an availability group.
Better design experience
Multi-targeting and multi-version support in SSIS Designer
You can now use SSIS Designer in SQL Server Data Tools (SSDT) for Visual Studio 2015 to create, maintain, and run
packages that target SQL Server 2016, SQL Server 2014, or SQL Server 2012. To get SSDT, see Download Latest
SQL Server Data Tools.
In Solution Explorer, right-click on an Integration Services project and select Proper ties to open the property
pages for the project. On the General tab of Configuration Proper ties , select the TargetSer verVersion
property, and then choose SQL Server 2016, SQL Server 2014, or SQL Server 2012.

IMPORTANT
If you develop custom extensions for SSIS, see Support multi-targeting in your custom components and Getting your SSIS
custom extensions to be supported by the multi-version support of SSDT 2015 for SQL Server 2016.

Better management experience in SQL Server Management Studio


Improved performance for SSIS Catalog views
Most SSIS catalog views now perform better when they're run by a user who is not a member of the ssis_admin
role.
Other enhancements
Balanced Data Distributor transformation is now part of SSIS
The Balanced Data Distributor transformation, which required a separate download in previous versions of SQL
Server, is now installed when you install Integration Services. For more info, see Balanced Data Distributor
Transformation.
Data Feed Publishing Components are now part of SSIS
The Data Feed Publishing Components, which required a separate download in previous versions of SQL Server,
are now installed when you install Integration Services. For more info, see Data Streaming Destination.
Support for Azure Blob Storage in the SQL Server Import and Export Wizard
The SQL Server Import and Export Wizard can now import data from, and save data to, Azure Blob Storage. For
more info, see Choose a Data Source (SQL Server Import and Export Wizard) and Choose a Destination (SQL
Server Import and Export Wizard).
Change Data Capture Designer and Service for Oracle for Microsoft SQL Server 2016 released
The Microsoft® Change Data Capture Designer and Service for Oracle by Attunity for Microsoft SQL Server®
2016 have been released as part of the SQL Server 2016 Feature Pack. These components now support Oracle 12c
in classic installation. (Multitenant installation is not supported) To download components of the Feature Pack, see
Microsoft® SQL Server® 2016 Feature Pack.
CDC components updated for SQL Server 2016
The CDC (Change Data Capture) Control Task, Source, and Splitter Transformation components have been updated
to provide full compatibility with SQL Server 2016. There is no new functionality and there are no changes in
behavior.
Analysis Services Execute DDL Task updated
The Analysis Services Execute DDL Task has been updated to accept Tabular Model Scripting Language commands.
Analysis Services tasks support tabular models
You can now use all the SSIS task and destinations that support SQL Server Analysis Services (SSAS) with SQL
Server 2016 tabular models. The SSIS tasks have been updated to represent tabular objects instead of
multidimensional objects. For example, when you select objects to process, the Analysis Services Processing Task
automatically detects a Tabular model and displays a list of Tabular objects instead of showing measure groups and
dimensions. The Partition Processing Destination now also shows tabular objects and supports pushing data into a
partition.
The Dimension Processing Destination does not work for Tabular models with the SQL 2016 compatibility level.
The Analysis Services Processing Task and the Partition Processing Destination are all you need for tabular
processing.
Support for Built-in R Services
SSIS already supports the built-in R services in SQL Server. You can use SSIS not only to extract data and load the
output of analysis, but to build, run and periodically retrain R models. For more info, see the following log post.
Operationalize your machine learning project using SQL Server 2016 SSIS and R Services.
Rich XML validation output in the XML Task
Validate XML documents and get rich error output by enabling the ValidationDetails property of the XML Task.
Before the ValidationDetails property was available, XML validation by the XML Task returned only a true or false
result, with no information about errors or their locations. Now, when you set ValidationDetails to true, the
output file contains detailed information about every error including the line number and the position. You can use
this information to understand, locate, and fix errors in XML documents. For more info, see Validate XML with the
XML Task.
SSIS introduced the ValidationDetails property in SQL Server 2012 (11.x) Service Pack 2. This new property was
not announced or documented at that time. The ValidationDetails property is also available in SQL Server 2014
(12.x) and in SQL Server 2016 (13.x).

Get help
UserVoice: Have suggestions for improving SQL Server?
Microsoft Q & A (SQL Server)
DBA Stack Exchange (tag sql-server): Ask SQL Server questions
Stack Overflow (tag sql-server): Answers to SQL development questions
Reddit: General discussion about SQL Server
Microsoft SQL Server License Terms and Information
Support options for business users
Contact Microsoft
Additional SQL Server help and feedback

Contribute to SQL documentation


Did you know that you could edit the content yourself? If you do so, not only will our documentation improve, but
you'll also be credited as a contributor to the page.
How to contribute to SQL Server Documentation

See Also
What's New in SQL Server 2016
Editions and Supported Features for SQL Server 2016
What's New in Integration Services in SQL Server
2017
11/2/2020 • 5 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
This topic describes the features that have been added or updated in SQL Server 2017 (14.x) Integration Services.

NOTE
SQL Server 2017 also includes the features of SQL Server 2016 and the features added in SQL Server 2016 updates. For info
about the new SSIS features in SQL Server 2016, see What's New in Integration Services in SQL Server 2016.

Highlights of this release


Here are the most important new features of Integration Services in SQL Server 2017.
Scale Out . Distribute SSIS package execution more easily across multiple worker computers, and manage
executions and workers from a single master computer. For more info, see Integration Services Scale Out.
Integration Ser vices on Linux . Run SSIS packages on Linux computers. For more info, see Extract,
transform, and load data on Linux with SSIS.
Connectivity improvements . Connect to the OData feeds of Microsoft Dynamics AX Online and Microsoft
Dynamics CRM Online with the updated OData components.

New in Azure Data Factory


With the public preview of Azure Data Factory version 2 in September 2017, you can now do the following things:
Deploy packages to the SSIS Catalog database (SSISDB) on Azure SQL Database.
Run packages deployed to Azure on the Azure-SSIS Integration Runtime, a component of Azure Data Factory
version 2.
For more info, see Lift and shift SQL Server Integration Services workloads to the cloud.
These new capabilities require SQL Server Data Tools (SSDT) version 17.2 or later, but do not require SQL Server
2017 or SQL Server 2016. When you deploy packages to Azure, the Package Deployment Wizard always upgrades
the packages to the latest package format.

New in the Azure Feature Pack


In addition to the connectivity improvements in SQL Server, the Integration Services Feature Pack for Azure has
added support for Azure Data Lake Store. For more info, see the blog post New Azure Feature Pack Release
Strengthening ADLS Connectivity. Also see Azure Feature Pack for Integration Services (SSIS).

New in SQL Server Data Tools (SSDT)


You can now develop SSIS projects and packages that target SQL Server versions 2012 through 2017 in Visual
Studio 2017 or in Visual Studio 2015. For more info, see Download SQL Server Data Tools (SSDT).
New in SSIS in SQL Server 2017 RC1
New and changed features in Scale Out for SSIS
Scale Out Master now supports high availability. You can enable Always On for SSISDB and set up Windows
Server failover clustering for the server that hosts the Scale Out Master service. By applying this change to
Scale Out Master, you avoid a single point of failure and provide high availability for the entire Scale Out
deployment.
The failover handling of the execution logs from Scale Out Workers is improved. The execution logs are
persisted to local disk in case the Scale Out Worker stops unexpectedly. Later, when the worker restarts, it
reloads the persisted logs and continues saving them to SSISDB.
The parameter runincluster of the stored procedure [catalog].[create_execution] is renamed to runinscaleout
for consistency and readability. This change of parameter name has the following impact:
If you have existing scripts to run packages in Scale Out, you have to change the parameter name from
runincluster to runinscaleout to make the scripts work in RC1.
SQL Server Management Studio (SSMS) 17.1 and earlier versions can't trigger package execution in
Scale Out in RC1. The error message is: "*@runincluster* is not a parameter for procedure
create_execution ." This issue is fixed in the next release of SSMS, version 17.2. Version 17.2 and later of
SSMS support the new parameter name and package execution in Scale Out. Until SSMS version 17.2 is
available, as a workaround, you can use your existing version of SSMS to generate the package execution
script, then change the name of the runincluster parameter to runinscaleout in the script, and run the
script.
The SSIS Catalog has a new global property to specify the default mode for executing SSIS packages. This new
property applies when you call the [catalog].[create_execution] stored procedure with the runinscaleout
parameter set to null. This mode also applies to SSIS SQL Agent jobs. You can set the new global property in the
Properties dialog box for the SSISDB node in SSMS, or with the following command:

EXEC [catalog].[configure_catalog] @property_name=N'DEFAULT_EXECUTION_MODE', @property_value=1

New in SSIS in SQL Server 2017 CTP 2.1


New and changed features in Scale Out for SSIS
You can now use the Use32BitRuntime parameter when you trigger execution in Scale Out.
The performance of logging to SSISDB for package executions in Scale Out has been improved. The Event
Message and Message Context logs are now written to SSISDB in batch mode instead of one by one. Here are
some additional notes about this improvement:
Some reports in the current version of SQL Server Management Studio (SSMS) don't currently display
these logs for executions in Scale Out. We anticipate that they will be supported in the next release of
SSMS. The affected reports include the All Connections report, the Error Context report, and the
Connection Information section in the Integration Service Dashboard.
A new column event_message_guid has been added. Use this column to join the [catalog].
[event_message_context] view and the [catalog].[event_messages] view instead of using
event_message_id when you query these logs of executions in Scale Out.
To get the management application for SSIS Scale Out, download SQL Server Management Studio (SSMS) 17.1
or later.

New in SSIS in SQL Server 2017 CTP 2.0


There are no new SSIS features in SQL Server 2017 CTP 2.0.

New in SSIS in SQL Server 2017 CTP 1.4


There are no new SSIS features in SQL Server 2017 CTP 1.4.

New in SSIS in SQL Server 2017 CTP 1.3


There are no new SSIS features in SQL Server 2017 CTP 1.3.

New in SSIS in SQL Server 2017 CTP 1.2


There are no new SSIS features in SQL Server 2017 CTP 1.2.

New in SSIS in SQL Server 2017 CTP 1.1


There are no new SSIS features in SQL Server 2017 CTP 1.1.

New in SSIS in SQL Server 2017 CTP 1.0


Scale Out for SSIS
The Scale Out feature makes it much easier to run SSIS on multiple machines.
After installing the Scale Out Master and Workers, the package can be distributed to execute on different Workers
automatically. If the execution is terminated unexpectedly, the execution is retried automatically. Also, all the
executions and Workers can be centrally managed using the Master.
For more information, see Integration Services Scale Out.
Support for Microsoft Dynamics Online Resources
The OData Source and OData Connection Manager now support connecting to the OData feeds of Microsoft
Dynamics AX Online and Microsoft Dynamics CRM Online.
Integration Services features supported by the
editions of SQL Server
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
This topic provides details about the features of SQL Server Integration Services (SSIS) supported by the different
editions of SQL Server.
For features supported by Evaluation and Developer editions, see features listed for Enterprise Edition in the
following tables.
For the latest release notes and what's new information, see the following articles:
SQL Server 2016 release notes
What's New in Integration Services in SQL Server 2016
What's New in Integration Services in SQL Server 2017
Tr y SQL Ser ver 2016!
The SQL Server Evaluation edition is available for a 180-day trial period.

Download SQL Ser ver 2016 from the Evaluation Center

New Integration Services features in SQL Server 2017


EXP RESS W IT H
A DVA N C ED
F EAT URE EN T ERP RISE STA N DA RD W EB SERVIC ES EXP RESS

Scale Out Master Yes

Scale Out Worker Yes Yes 1 TBD TBD TBD

Support for Yes Yes


Microsoft
Dynamics AX and
Microsoft
Dynamics CRM in
OData
components 2

Linux support Yes Yes Yes

1 If you run packages that require Enterprise-only features in Scale Out, the Scale Out Workers must also run on

instances of SQL Server Enterprise.


2 This feature is also supported in SQL Server 2016 with Service Pack 1.

SQL Server Import and Export Wizard


EXP RESS W IT H
A DVA N C ED
F EAT URE EN T ERP RISE STA N DA RD W EB SERVIC ES EXP RESS

SQL Server Yes Yes Yes Yes1 Yes1


Import and
Export Wizard

1 DTSWizard.exe is not provided with SQL on Linux. However, dtexec on Linux can be used to execute a package
created by DTSWizard on Windows.

Integration Services
EXP RESS W IT H
A DVA N C ED
F EAT URE EN T ERP RISE STA N DA RD W EB SERVIC ES EXP RESS

Built-in data Yes Yes


source
connectors

Built in tasks and Yes Yes


transformations

ODBC source and Yes Yes


destination

Azure data Yes Yes


source
connectors and
tasks

Hadoop/HDFS Yes Yes


connectors and
tasks

Basic data Yes Yes


profiling tools

Integration Services - Advanced sources and destinations


EXP RESS W IT H
A DVA N C ED
F EAT URE EN T ERP RISE STA N DA RD W EB SERVIC ES EXP RESS

High- Yes
performance
Oracle source
and destination
by Attunity

High- Yes
performance
Teradata source
and destination
by Attunity
EXP RESS W IT H
A DVA N C ED
F EAT URE EN T ERP RISE STA N DA RD W EB SERVIC ES EXP RESS

SAP BW source Yes


and destination

Data mining Yes


model training
destination

Dimension Yes
processing
destination

Partition Yes
processing
destination

Integration Services - Advanced tasks and transformations


EXP RESS W IT H
A DVA N C ED
F EAT URE EN T ERP RISE STA N DA RD W EB SERVIC ES EXP RESS

Change Data Yes


Capture
components by
Attunity 1

Data mining Yes


query
transformation

Fuzzy grouping Yes


and fuzzy lookup
transformations

Term extraction Yes


and term lookup
transformations

1 The Change Data Capture components by Attunity require Enterprise edition. The Change Data Capture Service

and the Change Data Capture Designer, however, do not require Enterprise edition. You can use the Designer and
the Service on a computer where SSIS is not installed.
Integration Services Developer Documentation
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
Integration Services includes a completely rewritten object model, which has been enhanced with many features
that make extending and programming packages easier, more flexible, and more powerful. Developers can extend
and program almost every aspect of Integration Services packages.
As an Integration Services developer, there are two fundamental approaches that you can take to Integration
Services programming:
You can extend packages by writing components that become available within SSIS Designer to provide
custom functionality in a package.
You can create, configure, and run packages programmatically from your own applications.
If you find that the built-in components in Integration Services do not meet your requirements, you can extend the
power of Integration Services by coding your own extensions. In this approach, you have two discrete options:
For ad hoc use in a single package, you can create a custom task by writing code in the Script task, or a
custom data flow component by writing code in the Script component, which you can configure as a source,
transformation, or destination. These powerful wrappers write the infrastructure code for you and let you
focus exclusively on developing your custom functionality; however, they are not easily reusable elsewhere.
For use in multiple packages, you can create custom Integration Services extensions such as connection
managers, tasks, enumerators, log providers, and data flow components. The managed Integration Services
object model contains base classes that provide a starting point and make developing custom extensions
easier than ever.
If you want to create packages dynamically, or to manage and run Integration Services packages outside the
development environment, you can manipulate packages programmatically. You can load, modify, and run existing
packages, or you can create and run entirely new packages programmatically. In this approach, you have a
continuous range of options:
Load and run an existing package without modification.
Load an existing package, reconfigure it (for example, specify a different data source), and run it.
Create a new package, add and configure components, making changes object by object and property by
property, save it, and then run it.
These approaches to Integration Services programming are described in this section and demonstrated with
examples.

In This Section
Integration Services Programming Overview
Describes the roles of control flow and data flow in Integration Services development.
Understanding Synchronous and Asynchronous Transformations
Describes the important distinction between synchronous and asynchronous outputs and the components that use
them in the data flow.
Working with Connection Managers Programmatically
Lists the connection managers that you can use from managed code, and the values that the connection managers
return when the code calls the AcquireConnection method.
Extending Packages with Scripting
Describes how to extend the control flow by using the Script task, or the data flow by using the Script component.
Extending Packages with Custom Objects
Describes how to create and program custom tasks, data flow components, and other package objects for use in
multiple packages.
Building Packages Programmatically
Describes how to create, configure, and save Integration Services packages programmatically.
Running and Managing Packages Programmatically
Describes how to enumerate, run, and manage Integration Services packages programmatically.

Reference
Integration Services Error and Message Reference
Lists the predefined Integration Services error codes, together with their symbolic names and descriptions.

Related Sections
Troubleshooting Tools for Package Development
Describes the features and tools that Integration Services provides for troubleshooting packages during
development.

External Resources
CodePlex samples, Integration Services Product Samples, on www.codeplex.com/MSFTISProdSamples

See Also
SQL Server Integration Services
Integration Services Backward Compatibility
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
This topic describes changes between versions of SQL Server Integration Services. It covers features that are no
longer available or are scheduled to be removed in a future release. It also describes changes to the product that
are known to break, or to change the behavior of, an existing application that includes Integration Services
functionality.

Deprecated Integration Services Features


This section describes deprecated Integration Services features that are still available in the current release of SQL
Server Integration Services. These features are scheduled to be removed in a future release of SQL Server. Do not
use deprecated features in new applications.
There are no deprecated Integration Services features in SQL Server 2019 (15.x).

Discontinued Integration Services Functionality


This section describes Integration Services features that are no longer available in the current release of SQL Server
Integration Services.
There are no discontinued Integration Services features in SQL Server 2019 (15.x).

Breaking Changes to Integration Services Features


This section describes breaking changes in Integration Services. These changes may break applications, scripts, or
other items that are based on earlier versions of SQL Server. You may encounter these issues after you upgrade.
There are no breaking changes to Integration Services features in SQL Server 2019 (15.x).

Behavior Changes to Integration Services Features


This section describes behavior changes in Integration Services. Behavior changes affect how features work or
interact in the current release of SQL Server Integration Services when compared to earlier versions of SQL Server.
There are no behavior changes for Integration Services features in SQL Server 2019 (15.x).
Deploy an SSIS project with SQL Server
Management Studio (SSMS)
11/2/2020 • 5 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
This quickstart how to use SQL Server Management Studio (SSMS) to connect to the SSIS Catalog database, and
then run the Integration Services Deployment Wizard to deploy an SSIS project to the SSIS Catalog.
SQL Server Management Studio is an integrated environment for managing any SQL infrastructure, from SQL
Server to SQL Database. For more info about SSMS, see SQL Server Management Studio (SSMS).

Prerequisites
Before you start, make sure you have the latest version of SQL Server Management Studio. To download SSMS,
see Download SQL Server Management Studio (SSMS).
The validation described in this article for deployment to Azure SQL Database requires SQL Server Data Tools
(SSDT) version 17.4 or later. To get the latest version of SSDT, see Download SQL Server Data Tools (SSDT).
An Azure SQL Database server listens on port 1433. If you're trying to connect to an Azure SQL Database server
from within a corporate firewall, this port must be open in the corporate firewall for you to connect successfully.

Supported platforms
You can use the information in this quickstart to deploy an SSIS project to the following platforms:
SQL Server on Windows.
Azure SQL Database. For more info about deploying and running packages in Azure, see Lift and shift SQL
Server Integration Services workloads to the cloud.
You cannot use the information in this quickstart to deploy an SSIS package to SQL Server on Linux. For more info
about running packages on Linux, see Extract, transform, and load data on Linux with SSIS.

For Azure SQL Database, get the connection info


To deploy the project to Azure SQL Database, get the connection information you need to connect to the SSIS
Catalog database (SSISDB). You need the fully qualified server name and login information in the procedures that
follow.
1. Log in to the Azure portal.
2. Select SQL Databases from the left-hand menu, and then select the SSISDB database on the SQL databases
page.
3. On the Over view page for your database, review the fully qualified server name. To see the Click to copy
option, hover over the server name.
4. If you forget your Azure SQL Database server login information, navigate to the SQL Database server page to
view the server admin name. You can reset the password if necessary.

Authentication methods for deployment


If you're deploying to a SQL Server with the Deployment Wizard, you have to use Windows authentication; you
can't use SQL Server authentication.
If you're deploying to an Azure SQL Database server, you have to use SQL Server authentication or Azure Active
Directory authentication; you can't use Windows authentication.

Connect to the SSISDB database


Use SQL Server Management Studio to establish a connection to the SSIS Catalog.
1. Open SQL Server Management Studio.
2. In the Connect to Ser ver dialog box, enter the following information:

SET T IN G SUGGEST ED VA L UE M O RE IN F O

Ser ver type Database engine This value is required.

Ser ver name The fully qualified server name If you're connecting to an Azure SQL
Database server, the name is in this
format:
<server_name>.database.windows.net
.

Authentication SQL Server Authentication With SQL Server authentication, you


can connect to SQL Server or to
Azure SQL Database. See
authentication methods in the
deployment in this article.

Login The server admin account This account is the account that you
specified when you created the
server.

Password The password for your server admin This password is the password that
account you specified when you created the
server.

3. Click Connect . The Object Explorer window opens in SSMS.


4. In Object Explorer, expand Integration Ser vices Catalogs and then expand SSISDB to view the objects in
the SSIS Catalog database.

Start the Integration Services Deployment Wizard


1. In Object Explorer, with the Integration Ser vices Catalogs node and the SSISDB node expanded, expand
a folder.
2. Select the Projects node.
3. Right-click on the Projects node and select Deploy project . The Integration Services Deployment Wizard
opens. You can deploy a project from the current catalog or from the file system.

Deploy a project with the wizard


1. On the Introduction page of the wizard, review the introduction. Click Next to open the Select Source
page.
2. On the Select Source page, select the existing SSIS project to deploy.
To deploy a project deployment file that you created by building a project in the development
environment, select Project deployment file and enter the path to the .ispac file.
To deploy a project that is already deployed to an SSIS catalog database, select Integration Ser vices
catalog , and then enter the server name and the path to the project in the catalog. Click Next to see the
Select Destination page.
3. On the Select Destination page, select the destination for the project.
Enter the fully qualified server name. If the target server is an Azure SQL Database server, the name is in
this format <server_name>.database.windows.net .
Provide authentication information, and then select Connect . See authentication methods in the
deployment in this article.
Then select Browse to select the target folder in SSISDB.
Then select Next to open the Review page. (The Next button is enabled only after you select Connect .)
4. On the Review page, review the settings you selected.
You can change your selections by clicking Previous , or by clicking any of the steps in the left pane.
Click Deploy to start the deployment process.
5. If you're deploying to an Azure SQL Database server, the Validate page opens and checks the packages in
the project for known issues that may prevent the packages from running as expected in the Azure-SSIS
Integration Runtime. For more info, see Validate SSIS packages deployed to Azure.
6. After the deployment process is complete, the Results page opens. This page displays the success or failure
of each action.
If the action failed, click Failed in the Result column to display an explanation of the error.
Optionally, click Save Repor t... to save the results to an XML file.
Click Close to exit the wizard.

Next steps
Consider other ways to deploy a package.
Deploy an SSIS package with Transact-SQL (SSMS)
Deploy an SSIS package with Transact-SQL (VS Code)
Deploy an SSIS package from the command prompt
Deploy an SSIS package with PowerShell
Deploy an SSIS package with C#
Run a deployed package. To run a package, you can choose from several tools and languages. For more info,
see the following articles:
Run an SSIS package with SSMS
Run an SSIS package with Transact-SQL (SSMS)
Run an SSIS package with Transact-SQL (VS Code)
Run an SSIS package from the command prompt
Run an SSIS package with PowerShell
Run an SSIS package with C#
Deploy an SSIS project from SSMS with Transact-SQL
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
This quickstart demonstrates how to use SQL Server Management Studio (SSMS) to connect to the SSIS Catalog
database, and then use Transact-SQL statements to deploy an SSIS project to the SSIS Catalog.
SQL Server Management Studio is an integrated environment for managing any SQL infrastructure, from SQL
Server to SQL Database. For more info about SSMS, see SQL Server Management Studio (SSMS).

Prerequisites
Before you start, make sure you have the latest version of SQL Server Management Studio. To download SSMS,
see Download SQL Server Management Studio (SSMS).

Supported platforms
You can use the information in this quickstart to deploy an SSIS project to the following platforms:
SQL Server on Windows.
You cannot use the information in this quickstart to deploy an SSIS package to Azure SQL Database. The
catalog.deploy_project stored procedure expects path to the .ispac file in the local (on premises) file system.
For more info about deploying and running packages in Azure, see Lift and shift SQL Server Integration Services
workloads to the cloud.
You cannot use the information in this quickstart to deploy an SSIS package to SQL Server on Linux. For more info
about running packages on Linux, see Extract, transform, and load data on Linux with SSIS.

Supported authentication method


Refer to authentication methods for deployment.

Connect to the SSIS Catalog database


Use SQL Server Management Studio to establish a connection to the SSIS Catalog.
1. Open SQL Server Management Studio.
2. In the Connect to Ser ver dialog box, enter the following information:

SET T IN G SUGGEST ED VA L UE M O RE IN F O

Ser ver type Database engine This value is required.

Ser ver name The fully qualified server name

Authentication SQL Server Authentication


SET T IN G SUGGEST ED VA L UE M O RE IN F O

Login The server admin account This account is the account that you
specified when you created the
server.

Password The password for your server admin This password is the password that
account you specified when you created the
server.

3. Click Connect . The Object Explorer window opens in SSMS.


4. In Object Explorer, expand Integration Ser vices Catalogs and then expand SSISDB to view the objects in
the SSIS Catalog database.

Run the T-SQL code


Run the following Transact-SQL code to deploy an SSIS project.
1. In SSMS, open a new query window and paste the following code.
2. Update the parameter values in the catalog.deploy_project stored procedure for your system.
3. Make sure that SSISDB is the current database.
4. Run the script.
5. In Object Explorer, refresh the contents of SSISDB if necessary and check for the project that you deployed.

DECLARE @ProjectBinary AS varbinary(max)


DECLARE @operation_id AS bigint
SET @ProjectBinary =
(SELECT * FROM OPENROWSET(BULK '<project_file_path>.ispac', SINGLE_BLOB) AS BinaryData)

EXEC catalog.deploy_project @folder_name = '<target_folder>',


@project_name = '<project_name',
@Project_Stream = @ProjectBinary,
@operation_id = @operation_id out

Next steps
Consider other ways to deploy a package.
Deploy an SSIS package with SSMS
Deploy an SSIS package with Transact-SQL (VS Code)
Deploy an SSIS package from the command prompt
Deploy an SSIS package with PowerShell
Deploy an SSIS package with C#
Run a deployed package. To run a package, you can choose from several tools and languages. For more info,
see the following articles:
Run an SSIS package with SSMS
Run an SSIS package with Transact-SQL (SSMS)
Run an SSIS package with Transact-SQL (VS Code)
Run an SSIS package from the command prompt
Run an SSIS package with PowerShell
Run an SSIS package with C#
Deploy an SSIS project from Visual Studio Code with
Transact-SQL
11/2/2020 • 3 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
This quickstart demonstrates how to use Visual Studio Code to connect to the SSIS Catalog database, and then use
Transact-SQL statements to deploy an SSIS project to the SSIS Catalog.
Visual Studio Code is a code editor for Windows, macOS, and Linux that supports extensions, including the mssql
extension for connecting to Microsoft SQL Server, Azure SQL Database, or Azure Synapse Analytics. For more info
about VS Code, see Visual Studio Code.

Prerequisites
Before you start, make sure you have installed the latest version of Visual Studio Code and loaded the mssql
extension. To download these tools, see the following pages:
Download Visual Studio Code
mssql extension

Supported platforms
You can use the information in this quickstart to deploy an SSIS project to the following platforms:
SQL Server on Windows.
You cannot use the information in this quickstart to deploy an SSIS package to Azure SQL Database. The
catalog.deploy_project stored procedure expects path to the .ispac file in the local (on premises) file system.
For more info about deploying and running packages in Azure, see Lift and shift SQL Server Integration Services
workloads to the cloud.
You cannot use the information in this quickstart to deploy an SSIS package to SQL Server on Linux. For more info
about running packages on Linux, see Extract, transform, and load data on Linux with SSIS.

Set language mode to SQL in VS Code


To enable mssql commands and T-SQL IntelliSense, set the language mode to SQL in Visual Studio Code.
1. Open Visual Studio Code and then open a new window.
2. Click Plain Text in the lower right-hand corner of the status bar.
3. In the Select language mode drop-down menu that opens, select or enter SQL , and then press ENTER to
set the language mode to SQL.

Supported authentication method


Refer to authentication methods for deployment.

Connect to the SSIS Catalog database


Use Visual Studio Code to establish a connection to the SSIS Catalog.
1. In VS Code, press CTRL+SHIFT+P (or F1 ) to open the Command Palette.
2. Type sqlcon and press ENTER .
3. Press ENTER to select Create Connection Profile . This step creates a connection profile for your SQL
Server instance.
4. Follow the prompts to specify the connection properties for the new connection profile. After specifying
each value, press ENTER to continue.

SET T IN G SUGGEST ED VA L UE M O RE IN F O

Ser ver name The fully qualified server name

Database name SSISDB The name of the database to which


to connect.

Authentication SQL Login

User name The server admin account This account is the account that you
specified when you created the
server.

Password (SQL Login) The password for your server admin This password is the password that
account you specified when you created the
server.

Save Password? Yes or No If you do not want to enter the


password each time, select Yes.

Enter a name for this profile A profile name, such as A saved profile name speeds your
mySSISSer ver connection on subsequent logins.

5. Press the ESC key to close the info message that informs you that the profile is created and connected.
6. Verify your connection in the status bar.

Run the T-SQL code


Run the following Transact-SQL code to deploy an SSIS project.
1. In the Editor window, enter the following query in the empty query window.
2. Update the parameter values in the catalog.deploy_project stored procedure for your system.
3. Press CTRL+SHIFT+E to run the code and deploy the project.

DECLARE @ProjectBinary AS varbinary(max)


DECLARE @operation_id AS bigint
SET @ProjectBinary = (SELECT * FROM OPENROWSET(BULK '<project_file_path>.ispac', SINGLE_BLOB) AS BinaryData)

EXEC catalog.deploy_project @folder_name = '<target_folder>',


@project_name = '<project_name',
@Project_Stream = @ProjectBinary,
@operation_id = @operation_id out
Next steps
Consider other ways to deploy a package.
Deploy an SSIS package with SSMS
Deploy an SSIS package with Transact-SQL (SSMS)
Deploy an SSIS package from the command prompt
Deploy an SSIS package with PowerShell
Deploy an SSIS package with C#
Run a deployed package. To run a package, you can choose from several tools and languages. For more info,
see the following articles:
Run an SSIS package with SSMS
Run an SSIS package with Transact-SQL (SSMS)
Run an SSIS package with Transact-SQL (VS Code)
Run an SSIS package from the command prompt
Run an SSIS package with PowerShell
Run an SSIS package with C#
Deploy an SSIS project from the command prompt
with ISDeploymentWizard.exe
11/2/2020 • 4 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
This quickstart demonstrates how to deploy an SSIS project from the command prompt by running the
Integration Services Deployment Wizard, ISDeploymentWizard.exe .
For more info about the Integration Services Deployment Wizard, see Integration Services Deployment Wizard.

Prerequisites
The validation described in this article for deployment to Azure SQL Database requires SQL Server Data Tools
(SSDT) version 17.4 or later. To get the latest version of SSDT, see Download SQL Server Data Tools (SSDT).
An Azure SQL Database server listens on port 1433. If you're trying to connect to an Azure SQL Database server
from within a corporate firewall, this port must be open in the corporate firewall for you to connect successfully.

Supported platforms
You can use the information in this quickstart to deploy an SSIS project to the following platforms:
SQL Server on Windows.
Azure SQL Database. For more info about deploying and running packages in Azure, see Lift and shift SQL
Server Integration Services workloads to the cloud.
You cannot use the information in this quickstart to deploy an SSIS package to SQL Server on Linux. For more info
about running packages on Linux, see Extract, transform, and load data on Linux with SSIS.

For Azure SQL Database, get the connection info


To deploy the project to Azure SQL Database, get the connection information you need to connect to the SSIS
Catalog database (SSISDB). You need the fully qualified server name and login information in the procedures that
follow.
1. Log in to the Azure portal.
2. Select SQL Databases from the left-hand menu, and then select the SSISDB database on the SQL databases
page.
3. On the Over view page for your database, review the fully qualified server name. To see the Click to copy
option, hover over the server name.
4. If you forget your Azure SQL Database server login information, navigate to the SQL Database server page to
view the server admin name. You can reset the password if necessary.

Supported authentication method


Refer to authentication methods for deployment.

Start the Integration Services Deployment Wizard


1. Open a Command Prompt window.
2. Run ISDeploymentWizard.exe . The Integration Services Deployment Wizard opens.
If the folder that contains ISDeploymentWizard.exe is not in your path environment variable, you may have
to use the cd command to change to its directory. For SQL Server 2017, this folder is typically
C:\Program Files (x86)\Microsoft SQL Server\140\DTS\Binn .

Deploy a project with the wizard


1. On the Introduction page of the wizard, review the introduction. Click Next to open the Select Source
page.
2. On the Select Source page, select the existing SSIS project to deploy.
To deploy a project deployment file that you created by building a project in the development
environment, select Project deployment file and enter the path to the .ispac file.
To deploy a project that is already deployed to an SSIS catalog database, select Integration Ser vices
catalog , and then enter the server name and the path to the project in the catalog. Click Next to see the
Select Destination page.
3. On the Select Destination page, select the destination for the project.
Enter the fully qualified server name. If the target server is an Azure SQL Database server, the name is in
this format <server_name>.database.windows.net .
Provide authentication information, and then select Connect . See authentication methods for
deployment in this article.
Then select Browse to select the target folder in SSISDB.
Then select Next to open the Review page. (The Next button is enabled only after you select Connect .)
4. On the Review page, review the settings you selected.
You can change your selections by clicking Previous , or by clicking any of the steps in the left pane.
Click Deploy to start the deployment process.
5. If you're deploying to an Azure SQL Database server, the Validate page opens and checks the packages in
the project for known issues that may prevent the packages from running as expected in the Azure-SSIS
Integration Runtime. For more info, see Validate SSIS packages deployed to Azure.
6. After the deployment process is complete, the Results page opens. This page displays the success or failure
of each action.
If the action failed, click Failed in the Result column to display an explanation of the error.
Optionally, click Save Repor t... to save the results to an XML file.
Click Close to exit the wizard.

Next steps
Consider other ways to deploy a package.
Deploy an SSIS package with SSMS
Deploy an SSIS package with Transact-SQL (SSMS)
Deploy an SSIS package with Transact-SQL (VS Code)
Deploy an SSIS package with PowerShell
Deploy an SSIS package with C#
Run a deployed package. To run a package, you can choose from several tools and languages. For more info,
see the following articles:
Run an SSIS package with SSMS
Run an SSIS package with SSMS
Run an SSIS package with Transact-SQL (SSMS)
Run an SSIS package with Transact-SQL (VS Code)
Run an SSIS package from the command prompt
Run an SSIS package with PowerShell
Run an SSIS package with C#
Deploy an SSIS project with PowerShell
11/2/2020 • 3 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
This quickstart demonstrates how to use a PowerShell script to connect to a database server and deploy an SSIS
project to the SSIS Catalog.

Prerequisites
An Azure SQL Database server listens on port 1433. If you're trying to connect to an Azure SQL Database server
from within a corporate firewall, this port must be open in the corporate firewall for you to connect successfully.

Supported platforms
You can use the information in this quickstart to deploy an SSIS project to the following platforms:
SQL Server on Windows.
Azure SQL Database. For more info about deploying and running packages in Azure, see Lift and shift SQL
Server Integration Services workloads to the cloud.
You cannot use the information in this quickstart to deploy an SSIS package to SQL Server on Linux. For more info
about running packages on Linux, see Extract, transform, and load data on Linux with SSIS.

For Azure SQL Database, get the connection info


To deploy the project to Azure SQL Database, get the connection information you need to connect to the SSIS
Catalog database (SSISDB). You need the fully qualified server name and login information in the procedures that
follow.
1. Sign in to the Azure portal.
2. Select SQL Databases from the left-hand menu, and then select the SSISDB database on the SQL databases
page.
3. On the Over view page for your database, review the fully qualified server name. To see the Click to copy
option, hover over the server name.
4. If you forget your Azure SQL Database server login information, navigate to the SQL Database server page to
view the server admin name. You can reset the password if necessary.
5. Click Show database connection strings .
6. Review the complete ADO.NET connection string.

Supported authentication method


Refer to authentication methods for deployment.

SSIS PowerShell Provider


Provide appropriate values for the variables at the top of the following script, and then run the script to deploy the
SSIS project.
NOTE
The following example uses Windows Authentication to deploy to a SQL Server on premises. Use the New-PSDive cmdlet
to establish a connection using SQL Server authentication. If you're connecting to an Azure SQL Database server, you can't
use Windows authentication.

# Variables
$TargetInstanceName = "localhost\default"
$TargetFolderName = "Project1Folder"
$ProjectFilePath = "C:\Projects\Integration Services Project1\Integration Services
Project1\bin\Development\Integration Services Project1.ispac"
$ProjectName = "Integration Services Project1"

# Get the Integration Services catalog


$catalog = Get-Item SQLSERVER:\SSIS\$TargetInstanceName\Catalogs\SSISDB\

# Create the target folder


New-Object "Microsoft.SqlServer.Management.IntegrationServices.CatalogFolder" ($catalog,
$TargetFolderName,"Folder description") -OutVariable folder
$folder.Create()

# Read the project file and deploy it


[byte[]] $projectFile = [System.IO.File]::ReadAllBytes($ProjectFilePath)
$folder.DeployProject($ProjectName, $projectFile)

# Verify packages were deployed.


dir "$($catalog.PSPath)\Folders\$TargetFolderName\Projects\$ProjectName\Packages" |
SELECT Name, DisplayName, PackageId

PowerShell script
Provide appropriate values for the variables at the top of the following script, and then run the script to deploy the
SSIS project.

NOTE
The following example uses Windows Authentication to deploy to a SQL Server on premises. To use SQL Server
authentication, replace the Integrated Security=SSPI; argument with User ID=<user name>;Password=<password>; . If
you're connecting to an Azure SQL Database server, you can't use Windows authentication.
# Variables
$SSISNamespace = "Microsoft.SqlServer.Management.IntegrationServices"
$TargetServerName = "localhost"
$TargetFolderName = "Project1Folder"
$ProjectFilePath = "C:\Projects\Integration Services Project1\Integration Services
Project1\bin\Development\Integration Services Project1.ispac"
$ProjectName = "Integration Services Project1"

# Load the IntegrationServices assembly


$loadStatus = [System.Reflection.Assembly]::Load("Microsoft.SQLServer.Management.IntegrationServices, "+
"Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL")

# Create a connection to the server


$sqlConnectionString = `
"Data Source=" + $TargetServerName + ";Initial Catalog=master;Integrated Security=SSPI;"
$sqlConnection = New-Object System.Data.SqlClient.SqlConnection $sqlConnectionString

# Create the Integration Services object


$integrationServices = New-Object $SSISNamespace".IntegrationServices" $sqlConnection

# Get the Integration Services catalog


$catalog = $integrationServices.Catalogs["SSISDB"]

# Create the target folder


$folder = New-Object $SSISNamespace".CatalogFolder" ($catalog, $TargetFolderName,
"Folder description")
$folder.Create()

Write-Host "Deploying " $ProjectName " project ..."

# Read the project file and deploy it


[byte[]] $projectFile = [System.IO.File]::ReadAllBytes($ProjectFilePath)
$folder.DeployProject($ProjectName, $projectFile)

Write-Host "Done."

Next steps
Consider other ways to deploy a package.
Deploy an SSIS package with SSMS
Deploy an SSIS package with Transact-SQL (SSMS)
Deploy an SSIS package with Transact-SQL (VS Code)
Deploy an SSIS package from the command prompt
Deploy an SSIS package with C#
Run a deployed package. To run a package, you can choose from several tools and languages. For more info,
see the following articles:
Run an SSIS package with SSMS
Run an SSIS package with Transact-SQL (SSMS)
Run an SSIS package with Transact-SQL (VS Code)
Run an SSIS package from the command prompt
Run an SSIS package with PowerShell
Run an SSIS package with C#
Deploy an SSIS project with C# code in a .NET app
11/2/2020 • 4 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
This quickstart demonstrates how to write C# code to connect to a database server and deploy an SSIS project.
To create a C# app, you can use Visual Studio, Visual Studio Code, or another tool of your choice.

Prerequisites
Before you start, make sure you have Visual Studio or Visual Studio Code installed. Download the free Community
edition of Visual Studio, or the free Visual Studio Code, from Visual Studio Downloads.
An Azure SQL Database server listens on port 1433. If you're trying to connect to an Azure SQL Database server
from within a corporate firewall, this port must be open in the corporate firewall for you to connect successfully.

Supported platforms
You can use the information in this quickstart to deploy an SSIS project to the following platforms:
SQL Server on Windows.
Azure SQL Database. For more info about deploying and running packages in Azure, see Lift and shift SQL
Server Integration Services workloads to the cloud.
You cannot use the information in this quickstart to deploy an SSIS package to SQL Server on Linux. For more info
about running packages on Linux, see Extract, transform, and load data on Linux with SSIS.

For Azure SQL Database, get the connection info


To deploy the project to Azure SQL Database, get the connection information you need to connect to the SSIS
Catalog database (SSISDB). You need the fully qualified server name and login information in the procedures that
follow.
1. Log in to the Azure portal.
2. Select SQL Databases from the left-hand menu, and then select the SSISDB database on the SQL databases
page.
3. On the Over view page for your database, review the fully qualified server name. To see the Click to copy
option, hover over the server name.
4. If you forget your Azure SQL Database server login information, navigate to the SQL Database server page to
view the server admin name. You can reset the password if necessary.
5. Click Show database connection strings .
6. Review the complete ADO.NET connection string. Optionally, your code can use a SqlConnectionStringBuilder
to recreate this connection string with the individual parameter values that you provide.

Supported authentication method


Refer to authentication methods for deployment.

Create a new Visual Studio project


1. In Visual Studio, choose File , New , Project .
2. In the New Project dialog, and expand Visual C# .
3. Select Console App and enter deploy_ssis_project for the project name.
4. Click OK to create and open the new project in Visual Studio.

Add references
1. In Solution Explorer, right-click the References folder and select Add Reference . The Reference Manager
dialog box opens.
2. In the Reference Manager dialog box, expand Assemblies and select Extensions .
3. Select the following two references to add:
Microsoft.SqlServer.Management.Sdk.Sfc
Microsoft.SqlServer.Smo
4. Click the Browse button to add a reference to Microsoft.SqlSer ver.Management.IntegrationSer vices .
(This assembly is installed only in the global assembly cache (GAC).) The Select the files to reference dialog
box opens.
5. In the Select the files to reference dialog box, navigate to the GAC folder that contains the assembly.
Typically this folder is
C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.Management.IntegrationServices\14.0.0.0__89845dcd8080cc91 .
6. Select the assembly (that is, the .dll file) in the folder and click Add .
7. Click OK to close the Reference Manager dialog box and add the three references. To make sure the
references are there, check the References list in Solution Explorer.

Add the C# code


1. Open Program.cs .
2. Replace the contents of Program.cs with the following code. Add the appropriate values for your server,
database, user, and password.

NOTE
The following example uses Windows Authentication. To use SQL Server authentication, replace the
Integrated Security=SSPI; argument with User ID=<user name>;Password=<password>; . If you're connecting to an
Azure SQL Database server, you can't use Windows authentication.
using Microsoft.SqlServer.Management.IntegrationServices;
using System;
using System.Data.SqlClient;
using System.IO;

namespace deploy_ssis_project
{
class Program
{
static void Main(string[] args)
{
// Variables
string targetServerName = "localhost";
string targetFolderName = "Project1Folder";
string projectName = "Integration Services Project1";
string projectFilePath = @"C:\Projects\Integration Services Project1\Integration Services
Project1\bin\Development\Integration Services Project1.ispac";

// Create a connection to the server


string sqlConnectionString = "Data Source=" + targetServerName +
";Initial Catalog=master;Integrated Security=SSPI;";
SqlConnection sqlConnection = new SqlConnection(sqlConnectionString);

// Create the Integration Services object


IntegrationServices integrationServices = new IntegrationServices(sqlConnection);

// Get the Integration Services catalog


Catalog catalog = integrationServices.Catalogs["SSISDB"];

// Create the target folder


CatalogFolder folder = new CatalogFolder(catalog,
targetFolderName, "Folder description");
folder.Create();

Console.WriteLine("Deploying " + projectName + " project.");

byte[] projectFile = File.ReadAllBytes(projectFilePath);


folder.DeployProject(projectName, projectFile);

Console.WriteLine("Done.");
}
}
}

Run the code


1. To run the application, press F5 .
2. In SSMS, verify that the project has been deployed.

Next steps
Consider other ways to deploy a package.
Deploy an SSIS package with SSMS
Deploy an SSIS package with Transact-SQL (SSMS)
Deploy an SSIS package with Transact-SQL (VS Code)
Deploy an SSIS package from the command prompt
Deploy an SSIS package with PowerShell
Run a deployed package. To run a package, you can choose from several tools and languages. For more info,
see the following articles:
Run an SSIS package with SSMS
Run an SSIS package with Transact-SQL (SSMS)
Run an SSIS package with Transact-SQL (VS Code)
Run an SSIS package from the command prompt
Run an SSIS package with PowerShell
Run an SSIS package with C#
Run an SSIS package with SQL Server Management
Studio (SSMS)
11/2/2020 • 3 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
This quickstart demonstrates how to use SQL Server Management Studio (SSMS) to connect to the SSIS Catalog
database, and then run an SSIS package stored in the SSIS Catalog from Object Explorer in SSMS.
SQL Server Management Studio is an integrated environment for managing any SQL infrastructure, from SQL
Server to SQL Database. For more info about SSMS, see SQL Server Management Studio (SSMS).

Prerequisites
Before you start, make sure you have the latest version of SQL Server Management Studio (SSMS). To download
SSMS, see Download SQL Server Management Studio (SSMS).
An Azure SQL Database server listens on port 1433. If you're trying to connect to an Azure SQL Database server
from within a corporate firewall, this port must be open in the corporate firewall for you to connect successfully.

Supported platforms
You can use the information in this quickstart to run an SSIS package on the following platforms:
SQL Server on Windows.
Azure SQL Database. For more info about deploying and running packages in Azure, see Lift and shift
SQL Server Integration Services workloads to the cloud.
You cannot use the information in this quickstart to run an SSIS package on Linux. For more info about running
packages on Linux, see Extract, transform, and load data on Linux with SSIS.

For Azure SQL Database, get the connection info


To run the package on Azure SQL Database, get the connection information you need to connect to the SSIS
Catalog database (SSISDB). You need the fully qualified server name and login information in the procedures
that follow.
1. Log in to the Azure portal.
2. Select SQL Databases from the left-hand menu, and then select the SSISDB database on the SQL
databases page.
3. On the Over view page for your database, review the fully qualified server name. To see the Click to copy
option, hover over the server name.
4. If you forget your Azure SQL Database server login information, navigate to the SQL Database server page to
view the server admin name. You can reset the password if necessary.

Connect to the SSISDB database


Use SQL Server Management Studio to establish a connection to the SSIS Catalog.
1. Open SQL Server Management Studio.
2. In the Connect to Ser ver dialog box, enter the following information:

SET T IN G SUGGEST ED VA L UE M O RE IN F O

Ser ver type Database engine This value is required.

Ser ver name The fully qualified server name If you're connecting to an Azure SQL
Database server, the name is in this
format:
<server_name>.database.windows.net
.

Authentication SQL Server Authentication With SQL Server authentication, you


can connect to SQL Server or to
Azure SQL Database. If you're
connecting to an Azure SQL
Database server, you can't use
Windows authentication.

Login The server admin account This account is the account that you
specified when you created the
server.

Password The password for your server admin This password is the password that
account you specified when you created the
server.

3. Click Connect . The Object Explorer window opens in SSMS.


4. In Object Explorer, expand Integration Ser vices Catalogs and then expand SSISDB to view the objects
in the SSIS Catalog database.

Run a package
1. In Object Explorer, select the package that you want to run.
2. Right-click and select Execute . The Execute Package dialog box opens.
3. Configure the package execution by using the settings on the Parameters , Connection Managers , and
Advanced tabs in the Execute Package dialog box.
4. Click OK to run the package.

Next steps
Consider other ways to run a package.
Run an SSIS package with Transact-SQL (SSMS)
Run an SSIS package with Transact-SQL (VS Code)
Run an SSIS package from the command prompt
Run an SSIS package with PowerShell
Run an SSIS package with C#
Run an SSIS package from SSMS with Transact-SQL
11/2/2020 • 3 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
This quickstart demonstrates how to use SQL Server Management Studio (SSMS) to connect to the SSIS Catalog
database, and then use Transact-SQL statements to run an SSIS package stored in the SSIS Catalog.
SQL Server Management Studio is an integrated environment for managing any SQL infrastructure, from SQL
Server to SQL Database. For more info about SSMS, see SQL Server Management Studio (SSMS).

Prerequisites
Before you start, make sure you have the latest version of SQL Server Management Studio (SSMS). To download
SSMS, see Download SQL Server Management Studio (SSMS).
An Azure SQL Database server listens on port 1433. If you're trying to connect to an Azure SQL Database server
from within a corporate firewall, this port must be open in the corporate firewall for you to connect successfully.

Supported platforms
You can use the information in this quickstart to run an SSIS package on the following platforms:
SQL Server on Windows.
Azure SQL Database. For more info about deploying and running packages in Azure, see Lift and shift SQL
Server Integration Services workloads to the cloud.
You cannot use the information in this quickstart to run an SSIS package on Linux. For more info about running
packages on Linux, see Extract, transform, and load data on Linux with SSIS.

For Azure SQL Database, get the connection info


To run the package on Azure SQL Database, get the connection information you need to connect to the SSIS
Catalog database (SSISDB). You need the fully qualified server name and login information in the procedures that
follow.
1. Log in to the Azure portal.
2. Select SQL Databases from the left-hand menu, and then select the SSISDB database on the SQL
databases page.
3. On the Over view page for your database, review the fully qualified server name. To see the Click to copy
option, hover over the server name.
4. If you forget your Azure SQL Database server login information, navigate to the SQL Database server page to
view the server admin name. You can reset the password if necessary.

Connect to the SSISDB database


Use SQL Server Management Studio to establish a connection to the SSIS Catalog on your Azure SQL Database
server.
1. Open SQL Server Management Studio.
2. In the Connect to Ser ver dialog box, enter the following information:
SET T IN G SUGGEST ED VA L UE M O RE IN F O

Ser ver type Database engine This value is required.

Ser ver name The fully qualified server name If you're connecting to an Azure SQL
Database server, the name is in this
format:
<server_name>.database.windows.net
.

Authentication SQL Server Authentication With SQL Server authentication, you


can connect to SQL Server or to
Azure SQL Database. If you're
connecting to an Azure SQL
Database server, you can't use
Windows authentication.

Login The server admin account This account is the account that you
specified when you created the
server.

Password The password for your server admin This password is the password that
account you specified when you created the
server.

3. Click Connect . The Object Explorer window opens in SSMS.


4. In Object Explorer, expand Integration Ser vices Catalogs and then expand SSISDB to view the objects
in the SSIS Catalog database.

Run a package
Run the following Transact-SQL code to run an SSIS package.
1. In SSMS, open a new query window and paste the following code. (This code is the code generated by the
Script option in the Execute Package dialog box in SSMS.)
2. Update the parameter values in the catalog.create_execution stored procedure for your system.
3. Make sure that SSISDB is the current database.
4. Run the script.
5. In Object Explorer, refresh the contents of SSISDB if necessary and check for the project that you
deployed.
Declare @execution_id bigint
EXEC [SSISDB].[catalog].[create_execution] @package_name=N'Package.dtsx',
@execution_id=@execution_id OUTPUT,
@folder_name=N'Deployed Projects',
@project_name=N'Integration Services Project1',
@use32bitruntime=False,
@reference_id=Null
Select @execution_id
DECLARE @var0 smallint = 1
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,
@object_type=50,
@parameter_name=N'LOGGING_LEVEL',
@parameter_value=@var0
EXEC [SSISDB].[catalog].[start_execution] @execution_id
GO

Next steps
Consider other ways to run a package.
Run an SSIS package with SSMS
Run an SSIS package with Transact-SQL (VS Code)
Run an SSIS package from the command prompt
Run an SSIS package with PowerShell
Run an SSIS package with C#
Run an SSIS package from Visual Studio Code with
Transact-SQL
11/2/2020 • 4 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
This quickstart demonstrates how to use Visual Studio Code to connect to the SSIS Catalog database, and then
use Transact-SQL statements to run an SSIS package stored in the SSIS Catalog.
Visual Studio Code is a code editor for Windows, macOS, and Linux that supports extensions, including the
mssql extension for connecting to Microsoft SQL Server, Azure SQL Database, or Azure Synapse Analytics. For
more info about VS Code, see Visual Studio Code.

Prerequisites
Before you start, make sure you have installed the latest version of Visual Studio Code and loaded the mssql
extension. To download these tools, see the following pages:
Download Visual Studio Code
mssql extension

Supported platforms
You can use the information in this quickstart to run an SSIS package on the following platforms:
SQL Server on Windows.
Azure SQL Database. For more info about deploying and running packages in Azure, see Lift and shift SQL
Server Integration Services workloads to the cloud.
You cannot use the information in this quickstart to run an SSIS package on Linux. For more info about running
packages on Linux, see Extract, transform, and load data on Linux with SSIS.

Set language mode to SQL in VS Code


To enable mssql commands and T-SQL IntelliSense, set the language mode is set to SQL in Visual Studio Code.
1. Open Visual Studio Code and then open a new window.
2. Click Plain Text in the lower right-hand corner of the status bar.
3. In the Select language mode drop-down menu that opens, select or enter SQL , and then press ENTER
to set the language mode to SQL.

For Azure SQL Database, get the connection info


To run the package on Azure SQL Database, get the connection information you need to connect to the SSIS
Catalog database (SSISDB). You need the fully qualified server name and login information in the procedures
that follow.
1. Log in to the Azure portal.
2. Select SQL Databases from the left-hand menu, and then select the SSISDB database on the SQL
databases page.
3. On the Over view page for your database, review the fully qualified server name. To see the Click to copy
option, hover over the server name.
4. If you forget your Azure SQL Database server login information, navigate to the SQL Database server page to
view the server admin name. You can reset the password if necessary.

Connect to the SSIS Catalog database


Use Visual Studio Code to establish a connection to the SSIS Catalog.

IMPORTANT
Before continuing, make sure that you have your server, database, and login information ready. If you change your focus
from Visual Studio Code after you begin entering the connection profile information, you have to restart creating the
connection profile.

1. In VS Code, press CTRL+SHIFT+P (or F1 ) to open the Command Palette.


2. Type sqlcon and press ENTER .
3. Press ENTER to select Create Connection Profile . This step creates a connection profile for your SQL
Server instance.
4. Follow the prompts to specify the connection properties for the new connection profile. After specifying
each value, press ENTER to continue.

SET T IN G SUGGEST ED VA L UE M O RE IN F O

Ser ver name The fully qualified server name If you're connecting to an Azure SQL
Database server, the name is in this
format:
<server_name>.database.windows.net
.

Database name SSISDB The name of the database to which


to connect.

Authentication SQL Login With SQL Server authentication, you


can connect to SQL Server or to
Azure SQL Database. If you're
connecting to an Azure SQL
Database server, you can't use
Windows authentication.

User name The server admin account This account is the account that you
specified when you created the
server.

Password (SQL Login) The password for your server admin This password is the password that
account you specified when you created the
server.

Save Password? Yes or No If you do not want to enter the


password each time, select Yes.
SET T IN G SUGGEST ED VA L UE M O RE IN F O

Enter a name for this profile A profile name, such as A saved profile name speeds your
mySSISSer ver connection on subsequent logins.

5. Press the ESC key to close the info message that informs you that the profile is created and connected.
6. Verify your connection in the status bar.

Run the T-SQL code


Run the following Transact-SQL code to run an SSIS package.
1. In the Editor window, enter the following query in the empty query window. (This code is the code
generated by the Script option in the Execute Package dialog box in SSMS.)
2. Update the parameter values in the catalog.create_execution stored procedure for your system.
3. Press CTRL+SHIFT+E to run the code and run the package.

Declare @execution_id bigint


EXEC [SSISDB].[catalog].[create_execution] @package_name=N'Package.dtsx',
@execution_id=@execution_id OUTPUT,
@folder_name=N'Deployed Projects',
@project_name=N'Integration Services Project1',
@use32bitruntime=False,
@reference_id=Null
Select @execution_id
DECLARE @var0 smallint = 1
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,
@object_type=50,
@parameter_name=N'LOGGING_LEVEL',
@parameter_value=@var0
EXEC [SSISDB].[catalog].[start_execution] @execution_id
GO

Next steps
Consider other ways to run a package.
Run an SSIS package with SSMS
Run an SSIS package with Transact-SQL (SSMS)
Run an SSIS package from the command prompt
Run an SSIS package with PowerShell
Run an SSIS package with C#
Run an SSIS package from the command prompt
with DTExec.exe
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
This quickstart demonstrates how to run an SSIS package from the command prompt by running DTExec.exe
with the appropriate parameters.

NOTE
The method described in this article has not been tested with packages deployed to an Azure SQL Database server.

For more info about DTExec.exe , see dtexec Utility.

Supported platforms
You can use the information in this quickstart to run an SSIS package on the following platforms:
SQL Server on Windows.
The method described in this article has not been tested with packages deployed to an Azure SQL Database
server. For more info about deploying and running packages in Azure, see Lift and shift SQL Server Integration
Services workloads to the cloud.
You cannot use the information in this quickstart to run an SSIS package on Linux. For more info about running
packages on Linux, see Extract, transform, and load data on Linux with SSIS.

Run a package with dtexec


If the folder that contains DTExec.exe is not in your path environment variable, you may have to use the cd
command to change to its directory. For SQL Server 2017, this folder is typically
C:\Program Files (x86)\Microsoft SQL Server\140\DTS\Binn .

With the parameter values used in the following example, the program runs the package in the specified folder
path on the SSIS server - that is, the server that hosts the SSIS Catalog database (SSISDB). The /Server
parameter provides the server name. The program connects as the current user with Windows Integrated
Authentication. To use SQL Authentication, specify the /User and Password parameters with appropriate values.
1. Open a Command Prompt window.
2. Run DTExec.exe and provide values at least for the ISServer and the Server parameters, as shown in
the following example:

dtexec /ISServer "\SSISDB\Project1Folder\Integration Services Project1\Package.dtsx" /Server


"localhost"

Next steps
Consider other ways to run a package.
Run an SSIS package with SSMS
Run an SSIS package with Transact-SQL (SSMS)
Run an SSIS package with Transact-SQL (VS Code)
Run an SSIS package with PowerShell
Run an SSIS package with C#
Run an SSIS package with PowerShell
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
This quickstart demonstrates how to use a PowerShell script to connect to a database server and run an SSIS
package.

Prerequisites
An Azure SQL Database server listens on port 1433. If you're trying to connect to an Azure SQL Database server
from within a corporate firewall, this port must be open in the corporate firewall for you to connect successfully.

Supported platforms
You can use the information in this quickstart to run an SSIS package on the following platforms:
SQL Server on Windows.
SSIS integration runtime (IR) in Azure Data Factory (ADF), where SSIS catalog (SSISDB) is hosted by Azure
SQL Managed Instance (MI). For more info about deploying and running packages in Azure, see Lift and
shift SQL Server Integration Services workloads to the cloud.
You cannot use the information in this quickstart to run an SSIS package on Linux. For more info about running
packages on Linux, see Extract, transform, and load data on Linux with SSIS.

For Azure SQL Database, get the connection info


To run the package on Azure SQL Database, get the connection information you need to connect to the SSIS
Catalog database (SSISDB). You need the fully qualified server name and login information in the procedures
that follow.
1. Sign in to the Azure portal.
2. Select SQL Databases from the left-hand menu, and then select the SSISDB database on the SQL
databases page.
3. On the Over view page for your database, review the fully qualified server name. To see the Click to copy
option, hover over the server name.
4. If you forget your Azure SQL Database server login information, navigate to the SQL Database server page to
view the server admin name. You can reset the password if necessary.
5. Click Show database connection strings .
6. Review the complete ADO.NET connection string.

SSIS PowerShell Provider


You can use the SSIS PowerShell Provider to connect to an SSIS catalog and execute packages within it.
Below is a basic example of how to execute an SSIS package in a package catalog with the SSIS PowerShell
Provider.
(Get-ChildItem
SQLSERVER:\SSIS\localhost\Default\Catalogs\SSISDB\Folders\Project1Folder\Projects\'Integration Services
Project1'\Packages\ |
WHERE { $_.Name -eq 'Package.dtsx' }).Execute("false", $null)

PowerShell script
Provide appropriate values for the variables at the top of the following script, and then run the script to run the
SSIS package.

NOTE
The following example uses Windows Authentication. To use SQL Server authentication, replace the
Integrated Security=SSPI; argument with User ID=<user name>;Password=<password>; . If you're connecting to an
Azure SQL Database server, you can't use Windows authentication.

# Variables
$SSISNamespace = "Microsoft.SqlServer.Management.IntegrationServices"
$TargetServerName = "localhost"
$TargetFolderName = "Project1Folder"
$ProjectName = "Integration Services Project1"
$PackageName = "Package.dtsx"

# Load the IntegrationServices assembly


$loadStatus = [System.Reflection.Assembly]::Load("Microsoft.SQLServer.Management.IntegrationServices, "+
"Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL")

# Create a connection to the server


$sqlConnectionString = `
"Data Source=" + $TargetServerName + ";Initial Catalog=master;Integrated Security=SSPI;"
$sqlConnection = New-Object System.Data.SqlClient.SqlConnection $sqlConnectionString

# Create the Integration Services object


$integrationServices = New-Object $SSISNamespace".IntegrationServices" $sqlConnection

# Get the Integration Services catalog


$catalog = $integrationServices.Catalogs["SSISDB"]

# Get the folder


$folder = $catalog.Folders[$TargetFolderName]

# Get the project


$project = $folder.Projects[$ProjectName]

# Get the package


$package = $project.Packages[$PackageName]

Write-Host "Running " $PackageName "..."

$result = $package.Execute("false", $null)

Write-Host "Done."

Next steps
Consider other ways to run a package.
Run an SSIS package with SSMS
Run an SSIS package with Transact-SQL (SSMS)
Run an SSIS package with Transact-SQL (VS Code)
Run an SSIS package from the command prompt
Run an SSIS package with C#
Run an SSIS package with C# code in a .NET app
11/2/2020 • 3 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
This quickstart demonstrates how to write C# code to connect to a database server and run an SSIS package.
You can use Visual Studio, Visual Studio Code, or another tool of your choice to create a C# app.

Prerequisites
Before you start, make sure you have Visual Studio or Visual Studio Code installed. Download the free
Community edition of Visual Studio, or the free Visual Studio Code, from Visual Studio Downloads.
An Azure SQL Database server listens on port 1433. If you're trying to connect to an Azure SQL Database server
from within a corporate firewall, this port must be open in the corporate firewall for you to connect successfully.

For Azure SQL Database, get the connection info


To run the package on Azure SQL Database, get the connection information you need to connect to the SSIS
Catalog database (SSISDB). You need the fully qualified server name and login information in the procedures
that follow.
1. Log in to the Azure portal.
2. Select SQL Databases from the left-hand menu, and then select the SSISDB database on the SQL
databases page.
3. On the Over view page for your database, review the fully qualified server name. To see the Click to copy
option, hover over the server name.
4. If you forget your Azure SQL Database server login information, navigate to the SQL Database server page to
view the server admin name. You can reset the password if necessary.
5. Click Show database connection strings .
6. Review the complete ADO.NET connection string. Optionally, your code can use a
SqlConnectionStringBuilder to recreate this connection string with the individual parameter values that you
provide.

Create a new Visual Studio project


1. In Visual Studio, choose File , New , Project .
2. In the New Project dialog, and expand Visual C# .
3. Select Console App and enter run_ssis_project for the project name.
4. Click OK to create and open the new project in Visual Studio.

Add references
1. In Solution Explorer, right-click the References folder and select Add Reference . The Reference Manager
dialog box opens.
2. In the Reference Manager dialog box, expand Assemblies and select Extensions .
3. Select the following two references to add:
Microsoft.SqlServer.Management.Sdk.Sfc
Microsoft.SqlServer.Smo
4. Click the Browse button to add a reference to Microsoft.SqlSer ver.Management.IntegrationSer vices .
(This assembly is installed only in the global assembly cache (GAC).) The Select the files to reference
dialog box opens.
5. In the Select the files to reference dialog box, navigate to the GAC folder that contains the assembly.
Typically this folder is
C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.Management.IntegrationServices\14.0.0.0__89845dcd8080cc91
.
6. Select the assembly (that is, the .dll file) in the folder and click Add .
7. Click OK to close the Reference Manager dialog box and add the three references. To make sure the
references are there, check the References list in Solution Explorer.

Add the C# code


1. Open Program.cs .
2. Replace the contents of Program.cs with the following code. Add the appropriate values for your server,
database, user, and password.

NOTE
The following example uses Windows Authentication. To use SQL Server authentication, replace the
Integrated Security=SSPI; argument with User ID=<user name>;Password=<password>; . If you're connecting to an
Azure SQL Database server, you can't use Windows authentication.
using Microsoft.SqlServer.Management.IntegrationServices;
using System.Data.SqlClient;

namespace run_ssis_package
{
class Program
{
static void Main(string[] args)
{
// Variables
string targetServerName = "localhost";
string folderName = "Project1Folder";
string projectName = "Integration Services Project1";
string packageName = "Package.dtsx";

// Create a connection to the server


string sqlConnectionString = "Data Source=" + targetServerName +
";Initial Catalog=master;Integrated Security=SSPI;";
SqlConnection sqlConnection = new SqlConnection(sqlConnectionString);

// Create the Integration Services object


IntegrationServices integrationServices = new IntegrationServices(sqlConnection);

// Get the Integration Services catalog


Catalog catalog = integrationServices.Catalogs["SSISDB"];

// Get the folder


CatalogFolder folder = catalog.Folders[folderName];

// Get the project


ProjectInfo project = folder.Projects[projectName];

// Get the package


PackageInfo package = project.Packages[packageName];

// Run the package


package.Execute(false, null);

}
}
}

Run the code


1. To run the application, press F5 .
2. Verify that the package ran as expected and then close the application window.

Next steps
Consider other ways to run a package.
Run an SSIS package with SSMS
Run an SSIS package with Transact-SQL (SSMS)
Run an SSIS package with Transact-SQL (VS Code)
Run an SSIS package from the command prompt
Run an SSIS package with PowerShell
Lift and shift SQL Server Integration Services
workloads to the cloud
11/2/2020 • 7 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
You can now move your SQL Server Integration Services (SSIS) projects, packages, and workloads to the Azure
cloud. Deploy, run, and manage SSIS projects and packages in the SSIS Catalog (SSISDB) on Azure SQL
Database or SQL Managed Instance with familiar tools such as SQL Server Management Studio (SSMS).

Benefits
Moving your on-premises SSIS workloads to Azure has the following potential benefits:
Reduce operational costs and reduce the burden of managing infrastructure that you have when you run
SSIS on-premises or on Azure virtual machines.
Increase high availability with the ability to specify multiple nodes per cluster, as well as the high
availability features of Azure and of Azure SQL Database.
Increase scalability with the ability to specify multiple cores per node (scale up) and multiple nodes per
cluster (scale out).

Architecture of SSIS on Azure


The following table highlights the differences between SSIS on premises and SSIS on Azure.
The most significant difference is the separation of storage from runtime. Azure Data Factory hosts the runtime
engine for SSIS packages on Azure. The runtime engine is called the Azure-SSIS Integration Runtime (Azure-
SSIS IR). For more info, see Azure-SSIS Integration Runtime.

LO C AT IO N STO RA GE RUN T IM E SC A L A B IL IT Y

On premises SQL Server SSIS runtime hosted by SSIS Scale Out (in SQL
SQL Server Server 2017 and later)

Custom solutions (in prior


versions of SQL Server)

On Azure SQL Database or SQL Azure-SSIS Integration Scaling options for the
Managed Instance Runtime, a component of Azure-SSIS Integration
Azure Data Factory Runtime

Provision SSIS on Azure


Provision . Before you can deploy and run SSIS packages in Azure, you have to provision the SSIS Catalog
(SSISDB) and the Azure-SSIS Integration Runtime.
To provision SSIS on Azure in the Azure portal, follow the provisioning steps in this article: Provision the
Azure-SSIS Integration Runtime in Azure Data Factory.
To provision SSIS on Azure with PowerShell, follow the provisioning steps in this article: Provision the
Azure-SSIS Integration Runtime in Azure Data Factory with PowerShell.
You only have to provision the Azure-SSIS IR one time. After that, you can use familiar tools such as SQL Server
Data Tools (SSDT) and SQL Server Management Studio (SSMS) to deploy, configure, run, monitor, schedule, and
manage packages.

NOTE
The Azure-SSIS Integration Runtime is not yet available in all Azure regions. For info about the supported regions, see
Products available by region - Microsoft Azure.

Scale up and out . When you provision the Azure-SSIS IR, you can scale up and scale out by specifying values
for the following options:
The node size (including the number of cores) and the number of nodes in the cluster.
The existing instance of Azure SQL Database to host the SSIS Catalog Database (SSISDB), and the service
tier for the database.
The maximum parallel executions per node.
Improve performance . For more info, see Configure the Azure-SSIS Integration Runtime for high
performance.
Reduce costs . To reduce costs, run the Azure-SSIS IR only when you need it. For more info, see How to
schedule starting and stopping of an Azure SSIS integration runtime.

Design packages
You continue to design and build packages on-premises in SSDT, or in Visual Studio with SSDT installed.
Connect to data sources
To connect to on-premises data sources from the cloud with Windows authentication , see Connect to data
sources and file shares with Windows Authentication from SSIS packages in Azure.
To connect to files and file shares, see Open and save files on premises and in Azure with SSIS packages
deployed in Azure.
Available SSIS components
When you provision an instance of SQL Database to host SSISDB, the Azure Feature Pack for SSIS and the
Access Redistributable are also installed. These components provide connectivity to various Azure data
sources and to Excel and Access files, in addition to the data sources supported by the built-in components.
You can also install additional components - for example, you can install a driver that's not installed by default.
For more info, see Customize setup for the Azure-SSIS integration runtime.
If you have an Enterprise Edition license, additional components are available. For more info, see Provision
Enterprise Edition for the Azure-SSIS Integration Runtime.
If you're an ISV, you can update the installation of your licensed components to make them available on Azure.
For more info, see Install paid or licensed custom components for the Azure-SSIS integration runtime.
Transaction support
With SQL Server on premises and on Azure virtual machines, you can use Microsoft Distributed Transaction
Coordinator (MSDTC) transactions. To configure MSDTC on each node of the Azure-SSIS IR, use the custom
setup capability. For more info, see Custom setup for the Azure-SSIS integration runtime.
With Azure SQL Database, you can only use elastic transactions. For more info, see Distributed transactions
across cloud databases.

Deploy and run packages


To get started, see Tutorial: Deploy and run a SQL Server Integration Services (SSIS) package in Azure.
Prerequisites
To deploy SSIS packages to Azure, you have to have one of the following versions of SQL Server Data Tools
(SSDT):
For Visual Studio 2017, version 15.3 or later.
For Visual Studio 2015, version 17.2 or later.
Connect to SSISDB
The name of the SQL Database that hosts SSISDB becomes the first part of the four-part name to use when
you deploy and run packages from SSDT and SSMS, in the following format -
<sql_database_name>.database.windows.net . For more info about how to connect to the SSIS Catalog database in
Azure, see Connect to the SSIS Catalog (SSISDB) in Azure.
Deploy projects and packages
You have to use the project deployment model , not the package deployment model, when you deploy
projects to SSISDB on Azure.
To deploy projects on Azure, you can use one of several familiar tools and scripting options:
SQL Server Management Studio (SSMS)
Transact-SQL (from SSMS, Visual Studio Code, or another tool)
A command-line tool
PowerShell or C# and the SSIS management object model
The deployment process validates packages to ensure that they can run on the Azure-SSIS Integration Runtime.
For more info, see Validate SQL Server Integration Services (SSIS) packages deployed to Azure.
For a deployment example that uses SSMS and the Integration Services Deployment Wizard, see Tutorial:
Deploy and run a SQL Server Integration Services (SSIS) package in Azure.
Version support
You can deploy a package created with any version of SSIS to Azure. When you deploy a package to Azure, if
there are no validation errors, the package is automatically upgraded to the latest package format. In other
words, it is always upgraded to the latest version of SSIS.
Run packages
To run SSIS packages deployed in Azure, you can use a variety of methods. For more info, see Run SQL Server
Integration Services (SSIS) packages deployed in Azure.
Run packages in an Azure Data Factory pipeline
To run an SSIS package in an Azure Data Factory pipeline, use the Execute SSIS Package Activity. For more info,
see Run an SSIS package using the Execute SSIS Package Activity in Azure Data Factory.
When you run a package in a Data Factory pipeline with the Execute SSIS Package Activity, you can pass values
to the package at runtime. To pass one or more runtime values, create SSIS execution environments in SSISDB
with SQL Server Management Studio (SSMS). In each environment, create variables and assign values that
correspond to the parameters for your projects or packages. Configure your SSIS packages in SSMS to
associate those environment variables with your project or package parameters. When you run the packages in
the pipeline, switch between environments by specifying different environment paths on the Settings tab of the
Execute SSIS Package activity UI. For more info about SSIS environments, see Create and Map a Server
Environment.

Monitor packages
To monitor running packages, use the following reporting options in SSMS.
Right-click SSISDB , and then select Active Operations to open the Active Operations dialog box.
Select a package in Object Explorer, right-click and select Repor ts , then Standard Repor ts , then All
Executions .
To monitor the Azure-SSIS Integration Runtime, see Monitor the Azure-SSIS integration runtime.

Schedule packages
To schedule the execution of packages deployed in Azure, you can use a variety of tools. For more info, see
Schedule the execution of SQL Server Integration Services (SSIS) packages deployed in Azure.

Next steps
To get started with SSIS workloads on Azure, see the following articles:
Tutorial: Deploy and run a SQL Server Integration Services (SSIS) package in Azure
Provision the Azure-SSIS Integration Runtime in Azure Data Factory
Tutorial: Deploy and run a SQL Server Integration
Services (SSIS) package in Azure
11/2/2020 • 7 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
This tutorial shows you how to deploy a SQL Server Integration Services (SSIS) project to the SSIS Catalog in
Azure SQL Database, run a package in the Azure-SSIS Integration Runtime, and monitor the running package.

Prerequisites
Before you start, make sure you have version 17.2 or later of SQL Server Management Studio. To download the
latest version of SSMS, see Download SQL Server Management Studio (SSMS).
Also make sure that you have set up the SSISDB database in Azure and provisioned the Azure-SSIS Integration
Runtime. For info about how to provision SSIS on Azure, see Deploy SQL Server Integration Services packages to
Azure.

For Azure SQL Database, get the connection info


To run the package on Azure SQL Database, get the connection information you need to connect to the SSIS
Catalog database (SSISDB). You need the fully qualified server name and login information in the procedures that
follow.
1. Log in to the Azure portal.
2. Select SQL Databases from the left-hand menu, and then select the SSISDB database on the SQL databases
page.
3. On the Over view page for your database, review the fully qualified server name. To see the Click to copy
option, hover over the server name.
4. If you forget your Azure SQL Database server login information, navigate to the SQL Database server page to
view the server admin name. You can reset the password if necessary.

Connect to the SSISDB database


Use SQL Server Management Studio to connect to the SSIS Catalog on your Azure SQL Database server. For more
info and screenshots, see Connect to the SSISDB Catalog database on Azure.
Here are the two most important things to remember. These steps are described in the following procedure.
Enter the fully qualified name of the Azure SQL Database server in the format
mysqldbser ver.database.windows.net .
Select SSISDB as the database for the connection.

IMPORTANT
An Azure SQL Database server listens on port 1433. If you are attempting to connect to an Azure SQL Database server
from within a corporate firewall, this port must be open in the corporate firewall for you to connect successfully.

1. Open SQL Server Management Studio.


2. Connect to the ser ver . In the Connect to Ser ver dialog box, enter the following information:

SET T IN G SUGGEST ED VA L UE DESC RIP T IO N

Ser ver type Database Engine This value is required.

Ser ver name The fully qualified server name The name should be in this format:
mysqldbser ver.database.window
s.net . If you need the server name,
see Connect to the SSISDB Catalog
database on Azure.

Authentication SQL Server Authentication You can't connect to Azure SQL


Database with Windows
authentication.

Login The server admin account The account that you specified when
you created the server.

Password The password for your server admin The password that you specified
account when you created the server.

3. Connect to the SSISDB database . Select Options to expand the Connect to Ser ver dialog box. In the
expanded Connect to Ser ver dialog box, select the Connection Proper ties tab. In the Connect to
database field, select or enter SSISDB .
4. Then select Connect . The Object Explorer window opens in SSMS.
5. In Object Explorer, expand Integration Ser vices Catalogs and then expand SSISDB to view the objects in
the SSIS Catalog database.

Deploy a project with the Deployment Wizard


To learn more about deploying packages and about the Deployment Wizard, see Deploy Integration Services
(SSIS) Projects and Packages and Integration Services Deployment Wizard.

NOTE
Deployment to Azure only supports the project deployment model.

Start the Integration Services Deployment Wizard


1. In Object Explorer in SSMS, with the Integration Ser vices Catalogs node and the SSISDB node
expanded, expand a project folder.
2. Select the Projects node.
3. Right-click on the Projects node and select Deploy project . The Integration Services Deployment Wizard
opens. You can deploy a project from an SSIS Catalog database or from the file system.
Deploy a project with the Deployment Wizard
1. On the Introduction page of the Deployment Wizard, review the introduction. Select Next to open the
Select Source page.
2. On the Select Source page, select the existing SSIS project to deploy.
To deploy a project deployment file that you created, select Project deployment file and enter the path
to the .ispac file.
To deploy a project that resides in an SSIS catalog, select Integration Ser vices catalog , and then enter
the server name and the path to the project in the catalog. Only projects that reside in SSISDB hosted by
SQL Server can be redeployed in this step.
Select Next to see the Select Destination page.
3. On the Select Destination page, select the destination for the project.
Enter the fully qualified server name in the format <server_name>.database.windows.net .
Provide authentication information, and then select Connect .
Then select Browse to select the target folder in SSISDB.
Then select Next to open the Review page. (The Next button is enabled only after you select Connect .)
4. On the Review page, review the settings you selected.
You can change your selections by selecting Previous , or by selecting any of the steps in the left pane.
Select Deploy to start the deployment process.

NOTE
If you get the error message There is no active worker agent. (.Net SqlClient Data Provider) , make sure the
Azure-SSIS Integration Runtime is running. This error occurs if you try to deploy while the Azure-SSIS IR is in a
stopped state.

5. After the deployment process is complete, the Results page opens. This page displays the success or failure
of each action.
If the action failed, select Failed in the Result column to display an explanation of the error.
Optionally, select Save Repor t... to save the results to an XML file.
Select Close to exit the wizard.

Deploy a project with PowerShell


To deploy a project with PowerShell to SSISDB on Azure SQL Database, adapt the following script to your
requirements. The script enumerates the child folders under $ProjectFilePath and the projects in each child
folder, then creates the same folders in SSISDB and deploys the projects to those folders.
This script requires SQL Server Data Tools version 17.x or SQL Server Management Studio installed on the
computer where you run the script.
# Variables
$ProjectFilePath = "C:\<folder>"
$SSISDBServerEndpoint = "<servername>.database.windows.net"
$SSISDBServerAdminUserName = "<username>"
$SSISDBServerAdminPassword = "<password>"

# Load the IntegrationServices Assembly


[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Management.IntegrationServices") | Out-
Null;

# Store the IntegrationServices Assembly namespace to avoid typing it every time


$ISNamespace = "Microsoft.SqlServer.Management.IntegrationServices"

Write-Host "Connecting to server ..."

# Create a connection to the server


$sqlConnectionString = "Data Source=" + $SSISDBServerEndpoint + ";User ID="+ $SSISDBServerAdminUserName
+";Password="+ $SSISDBServerAdminPassword + ";Initial Catalog=SSISDB"
$sqlConnection = New-Object System.Data.SqlClient.SqlConnection $sqlConnectionString

# Create the Integration Services object


$integrationServices = New-Object $ISNamespace".IntegrationServices" $sqlConnection

# Get the catalog


$catalog = $integrationServices.Catalogs['SSISDB']

write-host "Enumerating all folders..."

$folders = ls -Path $ProjectFilePath -Directory

if ($folders.Count -gt 0)
{
foreach ($filefolder in $folders)
{
Write-Host "Creating Folder " + $filefolder.Name + " ..."

# Create a new folder


$folder = New-Object $ISNamespace".CatalogFolder" ($catalog, $filefolder.Name, "Folder description")
$folder.Create()

$projects = ls -Path $filefolder.FullName -File -Filter *.ispac


if ($projects.Count -gt 0)
{
foreach($projectfile in $projects)
{
$projectfilename = $projectfile.Name.Replace(".ispac", "")
Write-Host "Deploying " + $projectfilename + " project ..."

# Read the project file, and deploy it to the folder


[byte[]] $projectFileContent = [System.IO.File]::ReadAllBytes($projectfile.FullName)
$folder.DeployProject($projectfilename, $projectFileContent)
}
}
}
}

Write-Host "All done."

Run a package
1. In Object Explorer in SSMS, select the package that you want to run.
2. Right-click and select Execute to open the Execute Package dialog box.
3. In the Execute Package dialog box, configure the package execution by using the settings on the
Parameters , Connection Managers , and Advanced tabs.
4. Select OK to run the package.

Monitor the running package in SSMS


To view the status of currently running Integration Services operations on the Integration Services server, such as
deployment, validation, and package execution, use the Active Operations dialog box in SSMS. To open the
Active Operations dialog box, right-click SSISDB , and then select Active Operations .
You can also select a package in Object Explorer, right-click and select Repor ts , then Standard Repor ts , then All
Executions .
For more info about how to monitor running packages in SSMS, see Monitor Running Packages and Other
Operations.

Monitor the Execute SSIS Package activity


If you're running a package as part of an Azure Data Factory pipeline with the Execute SSIS Package activity, you
can monitor the pipeline runs in the Data Factory UI. Then you can get the SSISDB execution ID from the output of
the activity run, and use the ID to check more comprehensive execution logs and error messages in SSMS.
Monitor the Azure-SSIS Integration Runtime
To get status info about the Azure-SSIS Integration Runtime in which packages are running, use the following
PowerShell commands. For each of the commands, provide the names of the Data Factory, the Azure-SSIS IR, and
the resource group.
For more info, see Monitor Azure-SSIS integration runtime.
Get metadata about the Azure -SSIS Integration Runtime

Get-AzDataFactoryV2IntegrationRuntime -DataFactoryName $DataFactoryName -Name $AzureSsisIRName -


ResourceGroupName $ResourceGroupName

Get the status of the Azure -SSIS Integration Runtime


Get-AzDataFactoryV2IntegrationRuntime -Status -DataFactoryName $DataFactoryName -Name $AzureSsisIRName -
ResourceGroupName $ResourceGroupName

Next steps
Learn how to schedule package execution. For more info, see Schedule SSIS package execution on Azure
Connect to the SSIS Catalog (SSISDB) in Azure
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
Find the connection information you need to connect to the SSIS Catalog (SSISDB) hosted on an Azure SQL
Database server. You need the following items to connect:
fully qualified server name
database name
login information

IMPORTANT
You can't create the SSISDB Catalog database on Azure SQL Database at this time independently of creating the Azure-SSIS
Integration Runtime in Azure Data Factory. The Azure-SSIS IR is the runtime environment that runs SSIS packages on Azure.
For a walkthrough of the process, see Deploy and run an SSIS package in Azure.

Prerequisites
Before you start, make sure you have version 17.2 or later of SQL Server Management Studio (SSMS). If the
SSISDB Catalog database is hosted on SQL Managed Instance, make sure you have version 17.6 or later of SSMS.
To download the latest version of SSMS, see Download SQL Server Management Studio (SSMS).

Get the connection info from the Azure portal


1. Log in to the Azure portal.
2. In the Azure portal, select SQL Databases from the left-hand menu, and then select the SSISDB database
on the SQL databases page.
3. On the Over view page for the SSISDB database, review the fully qualified server name as shown in the
following image. Hover over the server name to bring up the Click to copy option.

4. If you have forgotten the login information for the SQL Database server, navigate to the SQL Database
server page. There you can view the server admin name and, if necessary, reset the password.

Connect with SSMS


1. Open SQL Server Management Studio.
2. Connect to the ser ver . In the Connect to Ser ver dialog box, enter the following information:

SET T IN G SUGGEST ED VA L UE DESC RIP T IO N

Ser ver type Database Engine This value is required.

Ser ver name The fully qualified server name The name should be in this format:
mysqldbser ver.database.window
s.net .

Authentication SQL Server Authentication

Login The server admin account This is the account that you specified
when you created the server.

Password The password for your server admin This is the password that you
account specified when you created the
server.

3. Connect to the SSISDB database . Select Options to expand the Connect to Ser ver dialog box. In the
expanded Connect to Ser ver dialog box, select the Connection Proper ties tab. In the Connect to
database field, select or enter SSISDB .

IMPORTANT
If you don't select SSISDB when you connect, you may not see the SSIS Catalog in Object Explorer.
4. Then select Connect .
5. In Object Explorer, expand Integration Ser vices Catalogs and then expand SSISDB to view the objects in
the SSIS Catalog database.

Next steps
Deploy a package. For more info, see Deploy an SSIS project with SQL Server Management Studio (SSMS).
Run a package. For more info, see Run an SSIS package with SQL Server Management Studio (SSMS).
Schedule a package. For more info, see Schedule SSIS packages in Azure
Validate SQL Server Integration Services (SSIS)
packages deployed to Azure
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
When you deploy a SQL Server Integration Services (SSIS) project to the SSIS Catalog (SSISDB) on an Azure
server, the Package Deployment Wizard adds an additional validation step after the Review page. This validation
step checks the packages in the project for known issues that may prevent the packages from running as expected
in the Azure SSIS Integration Runtime. Then the wizard displays any applicable warnings on the Validate page.

IMPORTANT
The validation described in this article occurs when you deploy a project with SQL Server Data Tools (SSDT) version 17.4 or
later. To get the latest version of SSDT, see Download SQL Server Data Tools (SSDT).

For more info about the Package Deployment Wizard, see Deploy Integration Services (SSIS) Projects and
Packages.

Validate connection managers


The wizard checks certain connection managers for the following issues, which may cause the connection to fail:
Windows authentication . If a connection string uses Windows authentication, validation raises a warning.
Windows authentication requires additional configuration steps. For more info, see Connect to data and file
shares with Windows Authentication.
File path . If a connection string contains a hard-coded local file path like C:\\... , validation raises a warning.
Packages that contain an absolute path may fail.
UNC path . If a connection string contains a UNC path, validation raises a warning. Packages that contain a
UNC path may fail, typically because a UNC path requires Windows authentication to access.
Host name . If a server property contains host name instead of IP address, validation raises a warning.
Packages that contain host name may fail, typically because the Azure virtual network requires the correct DNS
configuration to support DNS name resolution.
Provider or driver . If a provider or driver is not supported, validation raises a warning. Only a small number
of built-in providers and drivers are supported at this time.
The wizard does the following validation checks for the connection managers in the list.

W IN DO W S
C O N N EC T IO N A UT H EN T IC AT IO P RO VIDER O R
M A N A GER N F IL E PAT H UN C PAT H H O ST N A M E DRIVER

Ado ✓ ✓ ✓

AdoNet ✓ ✓ ✓

Cache ✓ ✓

Excel ✓ ✓


W IN DO W S
C O N N EC T IO N A UT H EN T IC AT IO P RO VIDER O R
M A N A GER N F IL E PAT H UN C PAT H H O ST N A M E DRIVER

File ✓ ✓

FlatFile ✓ ✓

Ftp ✓

MsOLAP100 ✓ ✓

MultiFile ✓ ✓

MultiFlatFile ✓ ✓

OData ✓ ✓

Odbc ✓ ✓ ✓

OleDb ✓ ✓ ✓

SmoServer ✓ ✓

Smtp ✓ ✓

SqlMobile ✓ ✓

Wmi ✓

Validate sources and destinations


The following third-party sources and destinations are not supported:
Oracle Source and Destination by Attunity
Teradata Source and Destination by Attunity
SAP BW Source and Destination

Validate tasks and components


Execute Process Task
Validation raises a warning if a command points to a local file with an absolute path, or to a file with a UNC path.
These paths may cause execution on Azure to fail.
Script Task and Script Component
Validation raises a warning if a package contains a script task or a script component, which may reference or call
unsupported assemblies. These references or calls may cause execution to fail.
Other components
The Orc format is not supported in the HDFS Destination and the Azure Data Lake Store Destination.

Next steps
To learn how to schedule package execution on Azure, see Schedule SSIS packages in Azure.
Run SQL Server Integration Services (SSIS) packages
deployed in Azure
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
You can run SSIS packages deployed to the SSISDB Catalog on an Azure SQL Database server by choosing one of
the methods described in this article. You can run a package directly, or run a package as part of an Azure Data
Factory pipeline. For an overview about SSIS on Azure, see Deploy and run SSIS packages in Azure.
Run a package directly
Run with SSMS
Run with stored procedures
Run with script or code
Run a package as part of an Azure Data Factory pipeline
Run with the Execute SSIS Package activity
Run with the Stored Procedure activity

NOTE
Running a package with dtexec.exe has not been tested with packages deployed to Azure.

Run a package with SSMS


In SQL Server Management Studio (SSMS), you can right-click on a package deployed to the SSIS Catalog
database, SSISDB, and select Execute to open the Execute Package dialog box. For more info, see Run an SSIS
package with SQL Server Management Studio (SSMS).

Run a package with stored procedures


In any environment from which you can connect to Azure SQL Database and run Transact-SQL code, you can run a
package by calling the following stored procedures:
1. [catalog].[create_execution] . For more info, see catalog.create_execution.
2. [catalog].[set_execution_parameter_value] . For more info, see catalog.set_execution_parameter_value.
3. [catalog].[star t_execution] . For more info, see catalog.start_execution.
For more info, see the following examples:
Run an SSIS package from SSMS with Transact-SQL
Run an SSIS package from Visual Studio Code with Transact-SQL

Run a package with script or code


In any development environment from which you can call a managed API, you can run a package by calling the
Execute method of the Package object in the Microsoft.SQLServer.Management.IntegrationServices namespace.
For more info, see the following examples:
Run an SSIS package with PowerShell
Run an SSIS package with C# code in a .NET app

Run a package with the Execute SSIS Package activity


For more info, see Run an SSIS package using the Execute SSIS Package Activity in Azure Data Factory.

Run a package with the Stored Procedure activity


For more info, see Run an SSIS package using stored procedure activity in Azure Data Factory.

Next steps
Learn about options for scheduling SSIS packages deployed to Azure. For more info, see Schedule SSIS packages
in Azure.
Schedule the execution of SQL Server Integration
Services (SSIS) packages deployed in Azure
11/2/2020 • 4 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
You can schedule the execution of SSIS packages deployed to the SSISDB Catalog on an Azure SQL Database
server by choosing one of the methods described in this article. You can schedule a package directly, or schedule a
package indirectly as part of an Azure Data Factory pipeline. For an overview about SSIS on Azure, see Lift and
shift SQL Server Integration Services workloads to the cloud.
Schedule a package directly
Schedule with the Schedule option in SQL Server Management Studio (SSMS)
SQL Database elastic jobs
SQL Server Agent
Schedule a package indirectly as part of an Azure Data Factory pipeline

Schedule a package with SSMS


In SQL Server Management Studio (SSMS), you can right-click on a package deployed to the SSIS Catalog
database, SSISDB, and select Schedule to open the New schedule dialog box. For more info, see Schedule SSIS
packages in Azure with SSMS.
This feature requires SQL Server Management Studio version 17.7 or higher. To get the latest version of SSMS,
see Download SQL Server Management Studio (SSMS).

Schedule a package with SQL Database Elastic Jobs


For more info about elastic jobs on SQL Database, see Managing scaled-out cloud databases.
Prerequisites
Before you can use elastic jobs to schedule SSIS packages stored in the SSISDB Catalog database on an Azure SQL
Database server, you have to do the following things:
1. Install and configure the Elastic Database jobs components. For more info, see Installing Elastic Database
jobs overview.
2. Create database-scoped credentials that jobs can use to send commands to the SSIS Catalog database. For
more info, see CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL).
Create an elastic job
Create the job by using a Transact-SQL script similar to the script shown in the following example:
-- Create Elastic Jobs target group
EXEC jobs.sp_add_target_group 'TargetGroup'

-- Add Elastic Jobs target group member


EXEC jobs.sp_add_target_group_member @target_group_name='TargetGroup',
@target_type='SqlDatabase', @server_name='YourSQLDBServer.database.windows.net',
@database_name='SSISDB'

-- Add a job to schedule SSIS package execution


EXEC jobs.sp_add_job @job_name='ExecutePackageJob', @description='Description',
@schedule_interval_type='Minutes', @schedule_interval_count=60

-- Add a job step to create/start SSIS package execution using SSISDB catalog stored procedures
EXEC jobs.sp_add_jobstep @job_name='ExecutePackageJob',
@command=N'DECLARE @exe_id bigint
EXEC [SSISDB].[catalog].[create_execution]
@folder_name=N''folderName'', @project_name=N''projectName'',
@package_name=N''packageName'', @use32bitruntime=0,
@runinscaleout=1, @useanyworker=1,
@execution_id=@exe_id OUTPUT
EXEC [SSISDB].[catalog].[start_execution] @exe_id, @retry_count=0',
@credential_name='YourDBScopedCredentials',
@target_group_name='TargetGroup'

-- Enable the job schedule


EXEC jobs.sp_update_job @job_name='ExecutePackageJob', @enabled=1,
@schedule_interval_type='Minutes', @schedule_interval_count=60

Schedule a package with SQL Server Agent on premises


For more info about SQL Server Agent, see SQL Server Agent Jobs for Packages.
Prerequisite - Create a linked server
Before you can use SQL Server Agent on premises to schedule execution of packages stored on an Azure SQL
Database server, you have to add the SQL Database server to your on-premises SQL Server as a linked server.
1. Set up the linked ser ver

-- Add the SSISDB database on your Azure SQL Database as a linked server to your SQL Server on
premises
EXEC sp_addlinkedserver
@server='myLinkedServer', -- Name your linked server
@srvproduct='',
@provider='sqlncli', -- Use SQL Server native client
@datasrc='<server_name>.database.windows.net', -- Add your Azure SQL Database server endpoint
@location='',
@provstr='',
@catalog='SSISDB' -- Add SSISDB as the initial catalog

2. Set up linked ser ver credentials

-- Add your Azure SQL Database server admin credentials


EXEC sp_addlinkedsrvlogin
@rmtsrvname = 'myLinkedServer',
@useself = 'false',
@rmtuser = 'myUsername', -- Add your server admin username
@rmtpassword = 'myPassword' -- Add your server admin password

3. Set up linked ser ver options


EXEC sp_serveroption 'myLinkedServer', 'rpc out', true;

For more info, see Create Linked Servers and Linked Servers.
Create a SQL Server Agent job
To schedule a package with SQL Server Agent on premises, create a job with a job step that calls the SSIS Catalog
stored procedures [catalog].[create_execution] and then [catalog].[start_execution] . For more info, see SQL
Server Agent Jobs for Packages.
1. In SQL Server Management Studio, connect to the on-premises SQL Server database on which you want to
create the job.
2. Right-click on the SQL Ser ver Agent node, select New , and then select Job to open the New Job dialog
box.
3. In the New Job dialog box, select the Steps page, and then select New to open the New Job Step dialog
box.
4. In the New Job Step dialog box, select SSISDB as the Database.
5. In the Command field, enter a Transact-SQL script similar to the script shown in the following example:

-- T-SQL script to create and start SSIS package execution using SSISDB stored procedures
DECLARE @return_value int, @exe_id bigint

EXEC @return_value = [YourLinkedServer].[SSISDB].[catalog].[create_execution]


@folder_name=N'folderName', @project_name=N'projectName',
@package_name=N'packageName', @use32bitruntime=0, @runincluster=1, @useanyworker=1,
@execution_id=@exe_id OUTPUT

EXEC [YourLinkedServer].[SSISDB].[catalog].[set_execution_parameter_value] @exe_id,


@object_type=50, @parameter_name=N'SYNCHRONIZED', @parameter_value=1

EXEC [YourLinkedServer].[SSISDB].[catalog].[start_execution] @execution_id=@exe_id

6. Finish configuring and scheduling the job.

Schedule a package as part of an Azure Data Factory pipeline


You can schedule a package indirectly by using a trigger to run an Azure Data Factory pipeline that runs an SSIS
package.
To schedule a Data Factory pipeline, use one of the following triggers:
Schedule trigger
Tumbling window trigger
Event-based trigger
To run an SSIS package as part of a Data Factory pipeline, use one of the following activities:
Execute SSIS Package activity.
Stored Procedure activity.

Next steps
Review the options for running SSIS packages deployed to Azure. For more info, see Run SSIS packages in Azure.
Schedule the execution of SSIS packages deployed in
Azure with SQL Server Management Studio (SSMS)
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
You can use SQL Server Management Studio (SSMS) to schedule SSIS packages deployed to Azure SQL Database.
SQL Server on premises and SQL Managed Instance have SQL Server Agent and Managed Instance Agent
respectively as a first-class SSIS job scheduler. SQL Database, on the other hand, does not have a built-in first-class
SSIS job scheduler. The SSMS feature described in this article provides a familiar user interface that's similar to SQL
Server Agent for scheduling packages deployed to SQL Database.
If you're using SQL Database to host the SSIS catalog, SSISDB , you can use this SSMS feature to generate the Data
Factory pipelines, activities, and triggers required to schedule SSIS packages. Later you can optionally edit and
extend these objects in Data Factory.
When you use SSMS to schedule a package, SSIS automatically creates three new Data Factory objects, with names
based on the name of the selected package and the timestamp. For example, if the name of the SSIS package is
MyPackage , SSMS creates new Data Factory objects similar to the following:

O B JEC T NAME

Pipeline Pipeline_MyPackage_2018-05-08T09_00_00Z

Execute SSIS Package activity Activity_MyPackage_2018-05-08T09_00_00Z

Trigger Trigger_MyPackage_2018-05-08T09_00_00Z

Prerequisites
The feature described in this article requires SQL Server Management Studio version 17.7 or higher. To get the
latest version of SSMS, see Download SQL Server Management Studio (SSMS).

Schedule a package in SSMS


1. In SSMS, in Object Explorer, select the SSISDB database, select a folder, select a project, and then select a
package. Right-click on the package and select Schedule .
2. The New Schedule dialog box opens. On the General page of the New Schedule dialog box, provide a
name and description for the new scheduled job.

3. On the Package page of the New Schedule dialog box, select optional run-time settings and a run-time
environment.
4. On the Schedule page of the New Schedule dialog box, provide the schedule settings such as frequency,
time of day, and duration.

5. After you finish creating the job in the New Schedule dialog box, a confirmation appears to remind you
about the new Data Factory objects that SSMS is going to create. If you select Yes in confirmation dialog
box, the new Data Factory pipeline opens in the Azure portal for you to review and customize.
6. To customize the scheduling trigger, select New/Edit from the Trigger menu.

The Edit Trigger blade opens for you to customize the scheduling options.
Next steps
To learn about other methods for scheduling an SSIS package, see Schedule the execution of an SSIS package on
Azure.
To learn more about Azure Data Factory pipelines, activities, and triggers, see the following articles:
Pipelines and activities in Azure Data Factory
Pipeline execution and triggers in Azure Data Factory
Migrate on-premises SSIS workloads to SSIS in ADF
11/2/2020 • 2 minutes to read • Edit Online

This article lists process and tools that can help migrate SQL Server Integration Services (SSIS) workloads to SSIS
in ADF.
Migration overview highlights overall migration process of your ETL workloads from on-premises SSIS to SSIS in
ADF.
The migration process consists of two phases: Assessment and Migration.

Assessment
Data Migration Assistant (DMA) is a freely downloadable tool for this purpose that can be installed and executed
locally. DMA assessment project of type Integration Services can be created to assess SSIS packages in batches and
identify compatibility issues.
Get Database Migration Assistant, and perform package assessment.

Migration
Depending on the storage types of source SSIS packages and the migration destination of database workloads, the
steps to migrate SSIS packages and SQL Server Agent jobs that schedule SSIS package executions may vary. For
more information, see this page.

Next steps
Migrate SSIS packages to Azure SQL Managed Instance.
Migrate SSIS jobs to Azure Data Factory (ADF) with SQL Server Management Studio (SSMS).
Install Integration Services (SSIS)
11/2/2020 • 5 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
SQL Server provides a single setup program to install any or all of its components, including Integration Services.
Use Setup to install Integration Services with or without other SQL Server components on a single computer.
This article highlights important considerations that you should know before you install Integration Services.
Information in this article helps you evaluate your installation options so that your selection results in a successful
installation.

Get ready to install Integration Services


Before you install Microsoft SQL Server Integration Services, review the following information:
Hardware and Software Requirements for Installing SQL Server
Security Considerations for a SQL Server Installation

Install standalone or side by side


You can install SQL Server Integration Services in the following configurations:
You can install SQL Server Integration Services on a computer that has no previous instances of SQL
Server.
You can install SQL Server side by side with an existing instance of Integration Services.
When you upgrade to the latest version of Integration Services on a computer that has an earlier version of
Integration Services already installed, the current version is installed side by side with the earlier version.
For more information about upgrading Integration Services, see Upgrade Integration Services.

Get SQL Server with Integration Services


If you don't already have Microsoft SQL Server, download a free Evaluation Edition, or the free Developer Edition,
from SQL Server downloads. SSIS isn't included with the Express edition of SQL Server.

Install Integration Services


After you review the installation requirements for SQL Server and ensure that your computer meets those
requirements, you're ready to install Integration Services.
If you're using the Setup Wizard to install Integration Services, you use a series of pages to specify components
and options.
On the Feature Selection page, under Shared Features , select Integration Ser vices .
Under Instance Features , optionally select Database Engine Ser vices to host the SSIS Catalog
database, SSISDB , to store, manage, run, and monitor SSIS packages.
To install managed assemblies for Integration Services programming, also under Shared Features , select
Client Tools SDK .

NOTE
Some SQL Server components that you can select for installation on the Feature Selection page of the Setup Wizard
install a partial subset of Integration Services components. These components are useful for specific tasks, but the
functionality of Integration Services is limited. For example, the Database Engine Ser vices option installs the Integration
Services components required for the SQL Server Import and Export Wizard. To ensure a complete installation of
Integration Services, you must select Integration Ser vices on the Feature Selection page.

Installing a dedicated server for ETL processes


To use a dedicated server for extraction, transformation, and loading (ETL) processes, install a local instance of the
SQL Server Database Engine when you install Integration Services. Integration Services typically stores packages
in an instance of the Database Engine and relies on SQL Server Agent for scheduling those packages. If the ETL
server doesn't have an instance of the Database Engine, you have to schedule or run packages from a server that
does have an instance of the Database Engine. As a result, the packages aren't running on the ETL server, but
instead on the server from which they're started. As a result, the resources of the dedicated ETL server aren't
being used as intended. Furthermore, the resources of other servers may be strained by the running ETL
processes
Configuring SSIS event logging
By default, in a new installation, Integration Services is configured not to log events that are related to the running
of packages to the Application event log. This setting prevents too many event log entries when you use the Data
Collector feature of SQL Server 2019 (15.x). The events that aren't logged are EventID 12288, "Package started,"
and EventID 12289, "Package finished successfully." To log these events to the Application event log, open the
registry for editing. Then, in the registry, locate the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL
Server\130\SSIS node, and change the DWORD value of the LogPackageExecutionToEventLog setting from 0 to 1.

Install additional components for Integration Services


For a complete installation of Integration Services, select the components that you need from the following list:
Integration Ser vices (SSIS) . Install SSIS with the SQL Server Setup wizard. Selecting SSIS installs the
following things:
Support for the SSIS Catalog on the SQL Server Database Engine.
Optionally, the Scale Out feature, which consists of a Master and Workers.
32-bit and 64-bit SSIS components.
Installing SSIS does NOT install the tools required to design and develop SSIS packages.
SQL Ser ver Database Engine . Install the Database Engine with the SQL Server Setup wizard. Selecting
the Database Engine lets you create and host the SSIS Catalog database, SSISDB , to store, manage, run, and
monitor SSIS packages.
SQL Ser ver Data Tools (SSDT) . To download and install SSDT, see Download SQL Server Data Tools
(SSDT). Installing SSDT lets you design and deploy SSIS packages. SSDT installs the following things:
The SSIS package design and development tools, including SSIS Designer.
32-bit SSIS components only.
A limited version of Visual Studio (if a Visual Studio edition isn't already installed).
Visual Studio Tools for Applications (VSTA), the script editor used by the SSIS Script Task and Script
Component.
SSIS wizards including the Deployment Wizard and the Package Upgrade Wizard.
SQL Server Import and Export Wizard.
SQL Ser ver Data Tools (SSDT) . We've discontinued the SSDT standalone installer for Visual Studio 2019.
For Visual Studio 2019, you now can get the SSIS designer extension from the VS market place.
Integration Ser vices Feature Pack for Azure . To download and install the Feature Pack, see Microsoft
SQL Server 2017 Integration Services Feature Pack for Azure. Installing the Feature Pack lets your packages
connect to storage and analytics services in the Azure cloud, including the following services:
Azure Blob Storage.
Azure HDInsight.
Azure Data Lake Store.
Azure Synapse Analytics.
Azure Data Lake Storage (Gen2).
Optional additional components . You can optionally download additional third-party components from
the SQL Server Feature Package.
Microsoft® Connector for SAP BW for Microsoft SQL Server®. To get these components, see
Microsoft® SQL Server® 2017 Feature Pack.
Microsoft Connectors for Oracle and Teradata by Attunity. To get these components, see Attunity
connectors.

Next steps
Installing Integration Services Versions Side by Side
What's New in Integration Services in SQL Server 2016
What's New in Integration Services in SQL Server 2017
Installing Integration Services Versions Side by Side
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
You can install
SQL Server 2019 (15.x) Integration Services (SSIS) side-by-side with earlier versions of SSIS. This topic describes
some limitations of side-by-side installations.

Designing and maintaining packages


To design and maintain packages that target SQL Server 2016, SQL Server 2014, or SQL Server 2012, use SQL
Server Data Tools (SSDT) for Visual Studio 2015. To get SSDT, see Download Latest SQL Server Data Tools.
In the property pages for an Integration Services project, on the General tab of Configuration Proper ties , select
the TargetSer verVersion property and choose SQL Server 2016, SQL Server 2014, or SQL Server 2012.

TA RGET VERSIO N O F SQ L SERVER DEVELO P M EN T EN VIRO N M EN T F O R SSIS PA C K A GES

2016 SQL Server Data Tools for Visual Studio 2015

2014 SQL Server Data Tools for Visual Studio 2015

or

SQL Server Data Tools - Business Intelligence for Visual Studio


2013

2012 SQL Server Data Tools for Visual Studio 2015

or

SQL Server Data Tools - Business Intelligence for Visual Studio


2012

2008 Business Intelligence Development Studio from SQL Server


2008

When you add an existing package to an existing project, the package is converted to the format targeted by the
project .

Running packages
You can use the SQL Server 2019 (15.x) version of the dtexec utility or of SQL Server Agent to run Integration
Services packages created by earlier versions of the development tools. When these SQL Server 2019 (15.x) tools
load a package that was developed in an earlier version of the development tools, the tool temporarily converts the
package in memory to the package format that SQL Server 2017 Integration Services (SSIS) uses. If the package
has issues that prevent a successful conversion, the SQL Server 2019 (15.x) tool can't run the package until those
issues are resolved. For more info, see Upgrade Integration Services Packages.
Upgrade Integration Services
11/2/2020 • 9 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
If SQL Server 2008 Integration Services (SSIS) or later is currently installed on your computer, you can upgrade to
SQL Server 2017 Integration Services (SSIS).
When you upgrade to SQL Server 2017 Integration Services (SSIS) on a machine that has one of these earlier
versions of Integration Services installed, SQL Server 2017 Integration Services (SSIS) is installed side-by-side with
the earlier version.
With this side-by-side install, multiple versions of dtexec utility are installed. To ensure that you run the correct
version of the utility, at the command prompt run the utility by entering the full path (<drive>:\Program
Files\Microsoft SQL Server\<version>\DTS\Binn). For more information about dtexec, see dtexec Utility.

NOTE
In previous versions of SQL Server, by default when you installed SQL Server all users in the Users group had access to the
Integration Services service. When you install SQL Server 2019 (15.x), users do not have access to the Integration Services
service. The service is secure by default. After SQL Server 2019 (15.x) is installed, the SQL Server administrator must run the
DCOM Configuration tool (Dcomcnfg.exe) to grant specific users access to the Integration Services service. For more
information, see Integration Services Service (SSIS Service).

Before Upgrading Integration Services


We recommended that you run Upgrade Advisor before you upgrade to SQL Server 2019 (15.x). Upgrade Advisor
reports issues that you might encounter if you migrate existing Integration Services packages to the new package
format that SQL Server 2019 (15.x) uses.

NOTE
Support for migrating or running Data Transformation Services (DTS) packages has been discontinued in SQL Server 2012.
The following DTS functionality has been discontinued.
DTS runtime
DTS API
Package Migration Wizard for migrating DTS packages to the next version of Integration Services
Support for DTS package maintenance in SQL Server Management Studio
Execute DTS 2000 Package task
Upgrade Advisor scan of DTS packages.
For information about other discontinued features, see Discontinued Integration Services Functionality in SQL Server 2016.

Upgrading Integration Services


You can upgrade by using one of the following methods:
Run SQL Server 2019 (15.x) Setup and select the option to Upgrade from SQL Ser ver 2008, SQL
Ser ver 2008 R2, SQL Ser ver 2012 (11.x), or SQL Ser ver 2014 (12.x) .
Run setup.exe at the command prompt and specify the /ACTION=upgrade option. For more information,
see the section, "Installation Scripts for Integration Services," in Install SQL Server 2016 from the Command
Prompt.
You cannot use upgrade to perform the following actions:
Reconfigure an existing installation of Integration Services.
Move from a 32-bit to a 64-bit version of SQL Server or from a 64-bit version to a 32-bit version.
Move from one localized version of SQL Server to another localized version.
When you upgrade, you can upgrade both Integration Services and the Database Engine, or just upgrade the
Database Engine, or just upgrade Integration Services. If you upgrade only the Database Engine, SQL Server 2008
Integration Services (SSIS) or later remains functional, but you do not have the functionality of SQL Server 2017
Integration Services (SSIS). If you upgrade only Integration Services, SQL Server 2017 Integration Services (SSIS) is
fully functional, but can only store packages in the file system, unless an instance of the SQL Server 2019 Database
Engine is available on another computer.

Upgrading Both Integration Services and the Database Engine to SQL


Server 2019 (15.x)
This section describes the effects of performing an upgrade that has the following criteria:
You upgrade both Integration Services and an instance of the Database Engine to SQL Server 2019 (15.x).
Both Integration Services and the instance of the Database Engine are on the same computer.
What the Upgrade Process Does
The upgrade process does the following tasks:
Installs the SQL Server 2017 Integration Services (SSIS) files, service, and tools (Management Studio and
SQL Server Data Tools). When there are multiple instances of SQL Server 2008, SQL Server 2008 R2, SQL
Server 2012 (11.x), or SQL Server 2014 (12.x) on the same computer, the first time you upgrade any of the
instances to SQL Server 2019 (15.x), the SQL Server 2017 Integration Services (SSIS) files, service, and tools
are installed.
Upgrades the instance of the SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 (11.x), or SQL Server
2014 (12.x)Database Engine to the SQL Server 2019 (15.x) version.
Moves data from the SQL Server 2008 Integration Services (SSIS) or later system tables to the SQL Server
2017 Integration Services (SSIS) system tables, as follows:
Moves packages without change from the msdb.dbo.sysdtspackages90 system table to the
msdb.dbo.sysssispackages system table.

NOTE
Although the data moves to a different system table, the upgrade process does not migrate packages to the
new format.

Moves folder metadata from the msdb.sysdtsfolders90 system table to the msdb.sysssisfolders
system table.
Moves log data from the msdb.sysdtslog90 system table to the msdb.sysssislog system table.
Removes the msdb.sysdts*90 system tables and the stored procedures that are used to access them after
moving the data to the new msdb.sysssis* tables. However, upgrade replaces the sysdtslog90 table with a
view that is also named sysdtslog90. This new sysdtslog90 view exposes the new msdb.sysssislog system
table. This ensures that reports based on the log table continue to run without interruption.
To control access to packages, creates three new fixed database-level roles: db_ssisadmin, db_ssisltduser, and
db_ssisoperator. The SQL Server 2005 (9.x)Integration Services roles of db_dtsadmin, db_dtsltduser, and
db_dtsoperator are not removed, but are made members of the corresponding new roles.
If the SSIS package store (that is, the file system location managed by the Integration Services service) is the
default location under \SQL Ser ver\90 , \SQL Ser ver\100 , \SQL Ser ver\110 , or \SQL Ser ver\120
moves those packages to the new default location under \SQL Ser ver\130 .
Updates the Integration Services service configuration file to point to the upgraded instance of the Database
Engine.
What the Upgrade Process Does Not Do
The upgrade process does not do the following tasks:
Does not remove the SQL Server 2008 Integration Services (SSIS) or later service.
Does not migrate existing Integration Services packages to the new package format that SQL Server 2019
(15.x) uses. For information about how to migrate packages, see Upgrade Integration Services Packages.
Does not move packages from file system locations, other than the default location, that have been added to
the service configuration file. If you have previously edited the service configuration file to add more file
system folders, packages that are stored in those folders will not be moved to a new location.
In SQL Server Agent job steps that call the dtexec utility (dtexec.exe) directly, does not update the file
system path for the dtexec utility. You have to edit these job steps manually to update the file system path
to specify the SQL Server 2019 (15.x) location for the dtexec utility.
What You Can Do After Upgrading
After the upgrade process finishes, you can do the following tasks:
Run SQL Server Agent jobs that run packages.
Use Management Studio to manage Integration Services packages that are stored in an instance of SQL
Server 2008, SQL Server 2008 R2, SQL Server 2012 (11.x), or SQL Server 2014 (12.x). You need to modify
the service configuration file to add the instance of SQL Server 2008, SQL Server 2008 R2, SQL Server 2012
(11.x), or SQL Server 2014 (12.x) to the list of locations managed by the service.

NOTE
Early versions of Management Studio cannot connect to SQL Server 2017 Integration Services (SSIS) Service.

Identify the version of packages in the msdb.dbo.sysssispackages system table by checking the value in the
packageformat column. The table has a packageformat column that identifies the version of each package. A
value of 3 indicates a SQL Server 2008 Integration Services (SSIS) package. Until you migrate packages to
the new package format, the value in the packageformat column does not change.
You cannot use the SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 (11.x), or SQL Server 2014
(12.x) tools to design, run, or manage Integration Services packages. The SQL Server 2008, SQL Server 2008
R2, SQL Server 2012 (11.x), or SQL Server 2014 (12.x) tools include the respective versions of SQL Server
Data Tools (SSDT), the SQL Server Import and Export Wizard, and the Package Execution Utility
(dtexecui.exe). The upgrade process does not remove the SQL Server 2008, SQL Server 2008 R2, SQL
Server 2012 (11.x), or SQL Server 2014 (12.x)tools. However, you will not able to use these tools to continue
to work with SQL Server 2008 Integration Services (SSIS) or later packages on a server that has been
upgraded.
By default, in an upgrade installation, Integration Services is configured to log events that are related to the
running of packages to the Application event log. This setting might generate too many event log entries
when you use the Data Collector feature of SQL Server 2019 (15.x). The events that are logged include
EventID 12288, "Package started," and EventID 12289, "Package finished successfully." To stop logging these
two events to the Application event log, open the registry for editing. Then in the registry, locate the
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\SSIS node, and change the
DWORD value of the LogPackageExecutionToEventLog setting from 1 to 0.

Upgrading only the Database Engine to SQL Server 2019 (15.x)


This section describes the effects of performing an upgrade that has the following criteria:
You upgrade only an instance of the Database Engine. That is, the instance of the Database Engine is now an
instance of SQL Server 2019 (15.x), but the instance of Integration Services and the client tools are from
SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 (11.x), or SQL Server 2014 (12.x).
The instance of the Database Engine is on one computer, and Integration Services and the client tools are on
another computer.
What You Can Do After Upgrading
The system tables that store packages in the upgraded instance of the Database Engine are not the same as those
used in SQL Server 2008. Therefore, the SQL Server 2008 versions of Management Studio and SQL Server Data
Tools cannot discover the packages in the system tables on the upgraded instance of the Database Engine. Because
these packages cannot be discovered, there are limitations on what you can do with those packages:
You cannot use the SQL Server 2008 tools, Management Studio and SQL Server Data Tools, on other
computers to load or manage packages from the upgraded instance of the Database Engine.

NOTE
Although the packages in the upgraded instance of the Database Engine have not yet been migrated to the new
package format, they are not discoverable by the SQL Server 2008 tools. Therefore, the packages cannot be used by
the SQL Server 2008 tools.

You cannot use SQL Server 2008 Integration Services (SSIS) on other computers to run packages that are
stored in msdb on the upgraded instance of the Database Engine.
You cannot use SQL Server Agent jobs on SQL Server 2008 computers to run SQL Server 2008 Integration
Services (SSIS) packages that are stored in the upgraded instance of the Database Engine.

External Resources
Blog entry, Making your Existing Custom SSIS Extensions and Applications Work in Denali, on blogs.msdn.com.
Upgrade Integration Services Packages
11/2/2020 • 5 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
When you upgrade an instance of SQL Server 2008 to the current release of SQL Server, your existing SQL Server
2008 Integration Services (SSIS) packages are not automatically upgraded to the package format that the current
release SQL ServerIntegration Services uses. You will have to select an upgrade method and manually upgrade
your packages.
For information on upgrading packages when you convert a project to the project deployment model, see Deploy
Integration Services (SSIS) Projects and Packages

Selecting an Upgrade Method


You can use various methods to upgrade SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 (11.x), or SQL
Server 2014 (12.x) packages. For some of these methods, the upgrade is only temporary. For others, the upgrade
is permanent. The following table describes each of these methods and whether the upgrade is temporary or
permanent.

NOTE
When you run a SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 (11.x), or SQL Server 2014 (12.x) package using
the dtexec utility (dtexec.exe) that is installed with the current release of SQL Server, the temporary package upgrade
increases the execution time. The rate of increase in package execution time varies depending on the size of the package. To
avoid an increase in the execution time, it is recommended that you upgrade the package before running it.

UP GRA DE M ET H O D T Y P E O F UP GRA DE

Use the dtexec utility (dtexec.exe) that is installed with the The package upgrade is temporary.
current release of SQL Server to run a SQL Server 2008, SQL
Server 2008 R2, SQL Server 2012 (11.x), or SQL Server 2014 The changes cannot be saved.
(12.x) package.

For more information, see dtexec Utility.

Open a SQL Server 2008, SQL Server 2008 R2, SQL Server The package upgrade is permanent if you save the package;
2012 (11.x), or SQL Server 2014 (12.x) package file in SQL otherwise, it is temporary if you do not save the package.
Server Data Tools (SSDT).

Add a SQL Server 2008, SQL Server 2008 R2, SQL Server The package upgrade is permanent.
2012 (11.x), or SQL Server 2014 (12.x) package to an existing
project in SQL Server Data Tools (SSDT).

Open a SQL Server 2008 Integration Services (SSIS) or later The package upgrade is permanent.
project file in Visual Studio, and then use the SSIS Package
Upgrade Wizard to upgrade multiple packages in the project.

For more information, see Upgrade Integration Services


Packages Using the SSIS Package Upgrade Wizard and SSIS
Package Upgrade Wizard F1 Help.
UP GRA DE M ET H O D T Y P E O F UP GRA DE

Use the Upgrade method to upgrade one or more The package upgrade is permanent.
Integration Services packages.

Custom Applications and Custom Components


SQL Server 2005 Integration Services (SSIS) custom components will not work with the current release of SQL
ServerIntegration Services.
You can use the current release of SQL ServerIntegration Services tools to run and manage packages that include
SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 (11.x), or SQL Server 2014 (12.x)SSIS custom
components. We added four binding redirection rules to the following files to help redirect the runtime assemblies
from version 10.0.0.0 ( SQL Server 2008 R2), version 11.0.0.0 ( SQL Server 2012 (11.x)), or version 12.0.0.0 ( SQL
Server 2014 (12.x)) to version 13.0.0.0 ( SQL Server 2019 (15.x)).
DTExec.exe.config
dtshost.exe.config
DTSWizard.exe.config
DTUtil.exe.config
DTExecUI.exe.config
To use SQL Server Data Tools to design packages that include SQL Server 2008, SQL Server 2008 R2, SQL Server
2012 (11.x), or SQL Server 2014 (12.x) custom components, you need to modify the devenv.exe.config file that is
located at <drive>:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE.
To use these packages with customer applications that are built with the runtime for SQL Server 2019 (15.x),
include redirection rules in the configuration section of the *.exe.config file for the executable. The rules redirect
the runtime assemblies to version 13.0.0.0 (SQL Server 2019 (15.x)). For more information about assembly
version redirection, see <assemblyBinding> Element for <runtime>.
Locating the Assemblies
In SQL Server 2019 (15.x), the Integration Services assemblies were upgraded to .NET 4.0. There is a separate
global assembly cache for .NET 4, located in <drive>:\Windows\Microsoft.NET\assembly. You can find all of the
Integration Services assemblies under this path, usually in the GAC_MSIL folder.
As in previous versions of SQL Server, the core Integration Services extensibility .dll files are also located at
<drive>:\Program Files\Microsoft SQL Server\130\SDK\Assemblies.

Understanding SQL Server Package Upgrade Results


During the package upgrade process, most components and features in SQL Server 2008, SQL Server 2008 R2,
SQL Server 2012 (11.x), or SQL Server 2014 (12.x) packages convert seamlessly to their counterparts in the
current release of SQL Server. However, there are several components and features that either will not be
upgraded or have upgrade results of which you should be aware. The following table identifies these components
and features.

NOTE
To identify which packages have the issues listed in this table, run Upgrade Advisor.
C O M P O N EN T O R F EAT URE UP GRA DE RESULT S

Connection strings For SQL Server 2008, SQL Server 2008 R2, SQL Server 2012
(11.x), or SQL Server 2014 (12.x) packages, the names of
certain providers have changed and require different values in
the connection strings. To update the connection strings, use
one of the following procedures:

Use the SSIS Package Upgrade Wizard to upgrade the


package, and select the Update connection strings to
use new provider names option.

In SQL Server Data Tools (SSDT), on the General page of the


Options dialog box, select the Update connection strings
to use new provider names option. For more information
about this option, see General Page.

In SQL Server Data Tools (SSDT), open the package and


manually change the text of the ConnectionString property.

Note: You cannot use the previous procedures to update a


connection string when the connection string is stored in
either a configuration file or a data source file, or when an
expression sets the ConnectionString property. To update
the connection string in these cases, you must manually
update the file or the expression.

For more information about data sources, see Data Sources.

Scripts that Depend on ADODB.dll


Script Task and Script Component scripts that explicitly reference ADODB.dll may not upgrade or run on machines
without SQL Server Management Studio or SQL Server Data Tools (SSDT) installed. In order to upgrade these
Script Task or Script Component scripts, it is recommended that you remove the dependency on ADODB.dll.
Ado.Net is the recommended alternative for managed code such as VB and C# scripts.
Upgrade Integration Services Packages Using the
SSIS Package Upgrade Wizard
11/2/2020 • 3 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
You can upgrade packages that were created in earlier versions of Integration Services to the Integration Services
format that SQL Server 2019 (15.x) uses. SQL Server provides the SSIS Package Upgrade Wizard to help in this
process. Because you can configure the wizard to backup up your original packages, you can continue to use the
original packages if you experience upgrade difficulties.
The SSIS Package Upgrade Wizard is installed when Integration Services is installed.

NOTE
The SSIS Package Upgrade Wizard is available in the Standard, Enterprise, and Developer Editions of SQL Server.

For more information about how to upgrade Integration Services packages, see Upgrade Integration Services
Packages.
The remainder of this topic describes how to run the wizard and back up the original packages.

Running the SSIS Package Upgrade Wizard


You can run the SSIS Package Upgrade Wizard from SQL Server Data Tools (SSDT), from SQL Server Management
Studio, or at the command prompt.
To run the wizard from SQL Server Data Tools
1. In SQL Server Data Tools (SSDT), create or open an Integration Services project.
2. In Solution Explorer, right-click the SSIS Packages node, and then click Upgrade All Packages to upgrade
all the packages under this node.

NOTE
When you open an Integration Services project that contains SQL Server 2008 Integration Services (SSIS) or later
packages, Integration Services automatically opens the SSIS Package Upgrade Wizard.

To run the wizard from SQL Server Management Studio


In SQL Server Management Studio, connect to Integration Services, expand the Stored Packages node, and
right-click the File System or MSDB node, and then click Upgrade Packages .
To run the wizard at the command prompt
At the command prompt, run the SSISUpgrade.exe file from the C:\Program Files\Microsoft SQL
Ser ver\130\DTS\Binn folder.

Backing Up the Original Packages


To back up the original packages, both the original packages and the upgraded packages must be stored in the
same folder in the file system. Depending on how you run the wizard, this storage location might be automatically
selected.
When you run the SSIS Package Upgrade Wizard from SQL Server Data Tools (SSDT), the wizard
automatically stores both the original packages and upgraded packages in the same folder in the file
system.
When you run the SSIS Package Upgrade Wizard from SQL Server Management Studio or at the command
prompt, you can specify different storage locations for the original and upgraded packages. To back up the
original packages, make sure to specify that both the original and upgraded packages are stored in the
same folder in the file system. If you specify any other storage options, the wizard will not be able to back
up the original packages.
When the wizard backs up the original packages, the wizard stores a copy of the original packages in an
SSISBackupFolder folder. The wizard creates this SSISBackupFolder folder as a subfolder to the folder that
contains the original packages and the upgraded packages.
To back up the original packages in SQL Server Management Studio or at the command prompt
1. Save the original packages to a location on the file system.

NOTE
The backup option in the wizard only works with packages that have been stored to the file system.

2. In SQL Server Management Studio or at the command prompt, run the SSIS Package Upgrade Wizard.
3. On the Select Source Location page of the wizard, set the Package source property to File System .
4. On the Select Destination Location page of the wizard, select Save to source location tosave the
upgraded packages to the same location as the original packages.

NOTE
The backup option in the wizard is available only when the upgraded packages are stored in the same folder as the
original packages.

5. On the Select Package Management Options page of the wizard, select the Backup original
packages option.
To back up the original packages in SQL Server Data Tools
1. Save the original packages to a location on the file system.
2. On the Select Package Management Options page of the wizard, select the Backup original
packages option.

WARNING
The Backup original packages option is not displayed when you open a SQL Server 2008 Integration Services
(SSIS) or later project in SQL Server Data Tools (SSDT), which automatically launches the wizard.

3. In SQL Server Data Tools (SSDT), run the SSIS Package Upgrade Wizard.
Integration Services (SSIS) Development and
Management Tools
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
Integration Services includes two studios for working with packages:
SQL Server Data Tools (SSDT) for developing the Integration Services packages that a business solution
requires. SQL Server Data Tools (SSDT) provides the Integration Services project in which you create
packages.
SQL Server Management Studio for managing packages in a production environment.

SQL Server Data Tools


Working in SQL Server Data Tools (SSDT), you can perform the following tasks:
Run the SQL Server Import and Export Wizard to create basic packages that copy data from a source to a
destination.
Create packages that include complex control flow, data flow, event-driven logic, and logging.
Test and debug packages by using the troubleshooting and monitoring features in SSIS Designer, and the
debugging features in SQL Server Data Tools (SSDT).
Create configurations that update the properties of packages and package objects at run time.
Create a deployment utility that can install packages and their dependencies on other computers.
Save copies of packages to the SQL Server msdb database, the SSIS Package Store, and the file system.
For more information about SQL Server Data Tools (SSDT), see SQL Server Data Tools.

SQL Server Management Studio


SQL Server Management Studio provides the Integration Services service that you use to manage packages,
monitor running packages, and determine impact and data lineage for Integration Services and SQL Server objects.
Working in SQL Server Management Studio, you can perform the following tasks:
Create folders to organize packages in a way that is meaningful to your organization.
Run packages that are stored on the local computer by using the Execute Package utility.
Run the Execute Package utility to generate a command line to use when you run the dtexec command
prompt utility (dtexec.exe).
Import and export packages to and from the SQL Server msdb database, the SSIS Package Store, and the file
system.
Integration Services (SSIS) Projects and Solutions
11/2/2020 • 8 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
SQL Server provides SQL Server Data Tools (SSDT) for the development of Integration Services packages.
Integration Services packages reside in projects. To create and work with Integration Services projects, you must
install SQL Server Data Tools. For more information, see Install Integration Services.
When you create a new Integration Services project in SQL Server Data Tools (SSDT), the New Project dialog box
includes an Integration Ser vices Project template. This project template creates a new project that contains a
single package.

Projects and solutions


Projects are stored in solutions. You can create a solution first and then add an Integration Services project to the
solution. If no solution exists, SQL Server Data Tools (SSDT) automatically creates one for you when you first create
the project. A solution can contain multiple projects of different types.

TIP
By default, when you create a new project in SQL Server Data Tools, the solution is not shown in Solution Explorer pane. To
change this default behavior, on the Tools menus, click Options . In the Options dialog box, expand Projects and
Solutions , and then click General. On the General page, select Always show solution .

Solutions contain projects


A solution is a container that groups and manages the projects that you use when you develop end-to-end
business solutions. A solution lets you handle multiple projects as one unit and to bring together one or more
related projects that contribute to a business solution.
Solutions can include different types of projects. If you want to use SSIS Designer to create an Integration Services
package, you work in an Integration Services project in a solution provided by SQL Server Data Tools (SSDT).
When you create a new solution, SQL Server Data Tools (SSDT) adds a Solution folder to Solution Explorer, and
creates files that have the extensions, .sln and .suo:
The *.sln file contains information about the solution configuration and lists the projects in the solution.
The *.suo file contains information about your preferences for working with the solution.
While SQL Server Data Tools (SSDT) automatically creates a solution when you create a new project, you can also
create a blank solution, and then add projects later.

Integration Services projects contain packages


A project is a container in which you develop Integration Services packages.
In SQL Server Data Tools (SSDT), an Integration Services project stores and groups the files that are related to the
package. For example, a project includes the files that are required to create a specific extract, transfer, and load
(ETL) solution.
Before you create an Integration Services project, you should become familiar with the basic contents of this kind
of project. After you understand what a project contains, you can begin creating and working with an Integration
Services project.

Folders in Integration Services projects


The following diagram shows the folders in an Integration Services project in SQL Server Data Tools (SSDT).

The following table describes the folders that appear in an Integration Services project.

F O L DER DESC RIP T IO N

Connection Managers Contains Project Connection Managers. For more information,


see Integration Services (SSIS) Connections.

SSIS Packages Contains packages. For more information, see Integration


Services (SSIS) Packages.

Package Parts Contains Package Parts that can be reused or imported. For
more information, see Reuse Control Flow across Packages by
Using Control Flow Package Parts

Miscellaneous Contains files other than package files.

Files in Integration Services projects


When you add a new or an existing Integration Services project to a solution, SQL Server Data Tools (SSDT) creates
project files that have the extensions .dtproj, .dtproj.user, .database, Project.params.
The *.dtproj file contains information about project configurations and items such as packages.
The *.dtproj.user file contains information about your preferences for working with the project.
The *.database file contains information that SQL Server Data Tools (SSDT) requires to open the Integration
Services project.
The Project.params file contains information about the Project parameters.

Version targeting in Integration Services projects


In SQL Server Data Tools (SSDT), you can create, maintain, and run packages that target SQL Server 2017, SQL
Server 2016, SQL Server 2014, or SQL Server 2012.
In Solution Explorer, right-click on an Integration Services project and select Proper ties to open the property
pages for the project. On the General tab of Configuration Proper ties , select the TargetSer verVersion
property, and then choose SQL Server 2017, SQL Server 2016, SQL Server 2014, or SQL Server 2012.

Create a new Integration Services project


1. Open SQL Server Data Tools (SSDT).
2. On the File menu, point to New , and then click Project .
3. In the New Project dialog box, select Business Intelligence , and then select the Integration Ser vices
Project template.
The Integration Ser vices Project template creates an Integration Services project that contains a single,
empty package.

4. (Optional) Edit the project name and the location.


The solution name is automatically updated to match the project name.
5. To create a separate folder for the solution file, select Create director y for solution . This is the default
option.
6. If source control software is installed on the computer, select Add to source control to associate the
project with source control.
7. If the source control software is Microsoft Visual SourceSafe, the Visual SourceSafe Login dialog box
opens. In Visual SourceSafe Login , provide a user name, a password, and the name of the Microsoft
Visual SourceSafe database. Click Browse to locate the database.

NOTE: To view and change the selected source control plug-in and to configure the source control
environment, click Options on the Tools menu, and then expand the Source Control node.

8. Click OK to add the solution to Solution Explorer and add the project to the solution.

Import an existing project with the Import Project Wizard


1. In Visual Studio, click New > Project on the File menu.
2. In the Installed Templates area of the New Project window, expand Business Intelligence , and click
Integration Ser vices .
3. Select Integration Ser vices Impor t Project Wizard from the project types list.
4. Type a name for the new project to be created in the Name text box.
5. Type the path or location for the project in the Location text box, or click Browse to select one.
6. Type a name for the solution in the Solution name text box.
7. Click OK to launch the Integration Ser vices Impor t Project Wizard dialog box.
8. Click Next to switch to the Select Source page.
9. If you're importing from an .ispac file, type the path including file name in the Path text box. Click Browse
to navigate to the folder where you want the solution to be stored and type file name in the File name text
box, and click Open .
If you're importing from an Integration Ser vices Catalog , type the database instance name in the Ser ver
name text box or click Browse and select the database instance that contains the catalog.
Click Browse next to Path text box, expand folder in the catalog, select the project you want to import, and
click OK .
Click Next to switch to the Review page.
10. Review the information and click Impor t to create a project based on the existing project you selected.
11. Optional: click Save Repor t to save the results to a file
12. Click Close to close the Integration Ser vices Impor t Project Wizard dialog box.

Add a project to a solution


When you add a project, you can have Integration Services create a new, blank project, or you can add a project
that you have already created for a different solution. You can only add a project to an existing solution when the
solution is visible in SQL Server Data Tools (SSDT).
Add a new project to a solution
1. In SQL Server Data Tools (SSDT), open the solution to which you want to add a new Integration Services
project, and do one of the following:
Right-click the solution, click Add , and then click New Project .
On the File menu, point to Add , and then click New Project .
2. In the Add New Project dialog box, click Integration Ser vices Project in the Templates pane.
3. Optionally, edit the project name and location.
4. Click OK .
Add an existing project to a solution
1. In SQL Server Data Tools (SSDT), open the solution to which you want to add an existing Integration
Services project, and do one of the following:
Right-click the solution, point to Add , and then click Existing Project .
On the File menu, click Add , and then click Existing Project .
2. In the Add Existing Project dialog box, browse to locate the project you want to add, and then click Open .
3. The project is added to the solution folder in Solution Explorer .

Remove a project from a solution


You can only remove a project from a solution when the solution is visible in SQL Server Data Tools (SSDT). After
the solution is visible, you can remove all except one project. As soon as only one project remains, SQL Server Data
Tools (SSDT) no longer displays the solution folder and you cannot remove the last project.
1. In SQL Server Data Tools (SSDT), open the solution from which you want to remove an Integration Services
project.
2. In Solution Explorer, right-click the project, and then click Unload Project .
3. Click OK to confirm the removal.

Add an item to a project


1. In SQL Server Data Tools (SSDT), open the solution that contains the Integration Services project to which
you want to add an item.
2. In Solution Explorer, right-click the project, point to Add , and do one of the following:
Click New Item , and then select a template from the Templates pane in the Add New Item dialog
box.
Click Existing Item , browse in the Add Existing Item dialog box to locate the item you want to add
to the project, and then click Add .
3. The new item appears in the appropriate folder in Solution Explorer.

Copy project items


You can copy objects within an Integration Services project or between Integration Services projects. You can also
copy objects between the other types of SQL Server Data Tools (SSDT) projects, Reporting Services and Analysis
Services. To copy between projects, the project must be part of the same SQL Server Data Tools (SSDT) solution.
1. In SQL Server Data Tools (SSDT), open the Integration Services project or solution that you want to work
with.
2. Expand the project and item folder to copy from.
3. Right-click the item and click Copy .
4. Right-click the Integration Services project to copy to and click Paste .
The items are automatically copied to the correct folder. If you copy items to the Integration Services project
that aren't packages, the items are copied to the Miscellaneous folder.

Next steps
Download and install SQL Server Data Tools.
SSIS How to Create an ETL Package
SQL Server Integration Services (SSIS) DevOps Tools
Azure DevOps extension
11/2/2020 • 11 minutes to read • Edit Online

SSIS DevOps Tools extension is available in Azure DevOps Marketplace.


If you do not have an Azure DevOps organization, firstly sign up for Azure Pipelines, then add SSIS DevOps
Tools extension following the steps.
SSIS DevOps Tools includes SSIS Build task, SSIS Deploy release task, and SSIS Catalog Configuration
task ..
SSIS Build task supports building dtproj files in project deployment model or package deployment model.
SSIS Deploy task supports deploying single or multiple ispac files to on-premises SSIS catalog and Azure-
SSIS IR, or SSISDeploymentManifest files and their associated files to on-premises or Azure file share.
SSIS Catalog Configuration task supports configuring folder/project/environment of SSIS Catalog with a
configuration file in JSON format. This task supports following scenarios:
Folder
Create folder.
Update folder description.
Project
Configure value of parameters, both literal value and referenced value are supported.
Add environment references.
Environment
Create environment.
Update environment description.
Create or update environment variable.

SSIS Build task

Properties
Project path
Path of the project folder or file to be built. If a folder path is specified, SSIS Build task will search all dtproj files
recursively under this folder and build them all.
Project path cannot be empty, set as . to build from the root folder of the repository.
Project configuration
Name of the project configuration to be used for build. If not supplied, it defaults to the first defined project
configuration in each dtproj file.
Output path
Path of a separate folder to save build results, which can be published as build artifact via publish build artifacts
task.
Limitations and known issues
SSIS Build task relies on Visual Studio and SSIS designer, which is mandatory on build agents. Thus, to run
SSIS Build task in the pipeline, you must choose vs2017-win2016 for Microsoft-hosted agents, or install
Visual Studio and SSIS designer (either VS2017 + SSDT2017, or VS2019 + SSIS Projects extension) on self-
hosted agents.
To build SSIS projects using any out-of-box components (including SSIS Azure feature pack, and other third-
party components), those out-of-box components must be installed on the machine where the pipeline
agent is running. For Microsoft-hosted agent, user can add a PowerShell Script task or Command Line Script
task to download and install the components before SSIS Build task is executed. Below is the sample
PowerShell script to install Azure Feature Pack:

wget -Uri https://download.microsoft.com/download/E/E/0/EE0CB6A0-4105-466D-A7CA-


5E39FA9AB128/SsisAzureFeaturePack_2017_x86.msi -OutFile AFP.msi

start -Wait -FilePath msiexec -Args "/i AFP.msi /quiet /l* log.txt"

cat log.txt

Protection level Encr yptSensitiveWithPassword and Encr yptAllWithPassword are not supported in SSIS
Build task. Make sure all SSIS projects in codebase are not using these two protection levels, or SSIS Build task
will stop responding and time out during execution.

SSIS Deploy task


Properties
Source path
Path of source ISPAC or SSISDeploymentManifest files you want to deploy. This path could be a folder path or a file
path.
Destination type
Type of the destination. Currently SSIS Deploy task supports two types:
File System: Deploy SSISDeploymentManifest files and their associated files to a specified file system. Both on-
premises and Azure file share are supported.
SSISDB: Deploy ISPAC files to a specified SSIS catalog, which can be hosted on on-premises SQL Server or
Azure-SSIS Integration Runtime.
Destination server
Name of destination SQL server. It can be the name of an on-premises SQL Server, Azure SQL Database, or Azure
SQL Managed Instance. This property is only visible when destination type is SSISDB.
Destination path
Path of the destination folder where the source file will be deployed to. For example:
/SSISDB/<folderName>
\\<machineName>\<shareFolderName>\<optionalSubfolderName>
SSIS Deploy task will create the folder and subfolder if they don't exist.
Authentication type
Authentication type to access the specified destination server. This property is only visible when Destination type is
SSISDB. In general below authentication types are supported:
Windows Authentication
SQL Server Authentication
Active Directory - Password
Active Directory - Integrated
But whether a specific authentication type is supported depends on destination server type and agent type. Detail
support matrix is listed in below table.

DEST IN AT IO N SERVER T Y P E M IC RO SO F T - H O ST ED A GEN T SEL F - H O ST ED A GEN T

SQL server on-premises or VM N/A Windows Authentication

Azure SQL SQL Server Authentication SQL Server Authentication


Active Directory - Password Active Directory - Password
Active Directory - Integrated

Domain name
Domain name to access the specified file system. This property is only visible when Destination type is File System.
You can leave it empty when the user account to run the self-hosted agent has been granted read/write access to
the specified destination path.
Username
Username to access the specified file system or SSISDB. This property is visible when Destination type is File
System or Authentication type is SQL Server Authentication or Active Directory - Password. You can leave it empty
when the destination type is file system, and the user account to run the self-hosted agent has been granted
read/write access to the specified destination path.
Password
Password to access the specified file system or SSISDB. This property is visible when destination type is file system
or authentication type is SQL Server authentication or Active Directory - password. You can leave it empty when
destination type is file system, and the user account to run the self-hosted agent has been granted read/write
access to the specified destination path.
Overwrite existing projects or SSISDeploymentManifest files of the same names
Specify whether overwrite the existing projects or SSISDeploymentManifest files of the same names. If 'No', SSIS
Deploy task will skip deploying those projects or files.
Continue deployment when error occurs
Specify whether to continue deployment for remaining projects or files when an error occurs. If 'No', SSIS Deploy
task will stop immediately when error occurs.
Limitations and known issues
SSIS Deploy Task doesn't support the following scenarios currently:
Configure environment in SSIS catalog.
Deploy ispac to Azure SQL Server or Azure SQL Managed Instance, which only allows multi-factor
authentication (MFA).
Deploy packages to MSDB or SSIS Package Store.

SSIS Catalog Configuration task


Properties
Configuration file source
Source of the SSIS catalog configuration JSON file. It can be "File path" or "Inline".
Refer to details on how to define configuration JSON:
Refer to a sample inline configuration JSON.
Check JSON schema.
Configuration JSON file path
Path of the SSIS catalog configuration JSON file. This property is only visible when selecting "File path" as
configuration file source.
To use pipeline variables in configuration JSON file, you need to add a File Transform task before this task to
substitute configuration values with pipeline variables. For more information, see JSON variable substitution.
Inline configuration JSON
Inline JSON of the SSIS catalog configuration. This property is only visible when selecting "Inline" as configuration
file source. Pipeline variables can be directly used.
Roll back configuration when error occurs
Whether to roll back the configuration made by this task when error occurs.
Target server
Name of target SQL server. It can be the name of an on-premises SQL Server, Azure SQL Database, or Azure SQL
Managed Instance.
Authentication type
Authentication type to access the specified target server. In general below authentication types are supported:
Windows Authentication
SQL Server Authentication
Active Directory - Password
Active Directory - Integrated
But whether a specific authentication type is supported depends on destination server type and agent type. Detail
support matrix is listed in below table.
DEST IN AT IO N SERVER T Y P E M IC RO SO F T - H O ST ED A GEN T SEL F - H O ST ED A GEN T

SQL server on-premises or VM N/A Windows Authentication

Azure SQL SQL Server Authentication SQL Server Authentication


Active Directory - Password Active Directory - Password
Active Directory - Integrated

Username
Username to access the target SQL Server. This property is only visible when Authentication type is SQL Server
Authentication or Active Directory - Password.
Password
Password to access the target SQL Server. This property is only visible when Authentication type is SQL Server
Authentication or Active Directory - Password.
Define configuration JSON
The configuration JSON schema has three layers:
catalog
folder
project and environment

A sample inline configuration JSON


{
"folders": [
{
"name": "devopsdemo",
"description": "devops demo folder",
"projects": [
{
"name": "catalog devops",
"parameters": [
{
"name": "password",
"container": "Package.dtsx",
"value": "passwd",
"valueType": "referenced"
},
{
"name": "serverName",
"container": "catalog devops",
"value": "localhost",
"valueType": "literal"
}
],
"references": [
{
"environmentName": "test",
"environmentFolder": "devopsdemo"
},
{
"environmentName": "test",
"environmentFolder": "."
}
]
}
],
"environments": [
{
"name": "test",
"description": "test",
"variables": [
{
"name": "passwd",
"type": "string",
"description": "",
"value": "$(SSISDBServerAdminPassword)",
"sensitive": true
},
{
"name": "serverName",
"type": "string",
"description": "",
"value": "$(TargetServerName)",
"sensitive": false
}
]
}
]
}
]
}

JSON schema
Cat al o g A t t r i bu t es
P RO P ERT Y DESC RIP T IO N N OT ES

folders An array of folder objects. Each object See Folder Attributes for the schema of
contains configuration information for a a folder object.
catalog folder.

Fo l der A t t r i bu t es

P RO P ERT Y DESC RIP T IO N N OT ES

name Name of the catalog folder. Folder will be created if not exists.

description Description of the catalog folder. The value of null will be skipped.

projects An array of project objects. Each object See Project Attributes for the schema of
contains configuration information for a a project object.
project.

environments An array of environment objects. Each See Environment Attributes for the
object contains configuration schema of an environment object.
information for an environment.

Pr o j ec t A t t r i bu t es

P RO P ERT Y DESC RIP T IO N N OT ES

name Name of the project. Project object will be skipped if project


does not exist in the parent folder.

parameters An array of parameter objects. Each See Parameter Attributes the schema of
object contains configuration a parameter object.
information for a parameter.

references An array of reference objects. Each See Reference Attributes for the schema
object represents an environment of a reference object.
reference to the target project.

Par am et er A t t r i bu t es

P RO P ERT Y DESC RIP T IO N N OT ES

name Name of the parameter. The parameter can be a project


parameter or a package parameter.
The parameter is skipped if it doesn't
exist.
If the parameter is a connection
manager property, the name should be
in the format CM.<Connection
Manager Name>.<Proper ty
Name> .

container Container of the parameter. If the parameter is a project


parameter, the container should be the
project name.
If it's a package parameter, the
container should be the package name
with .dtsx extension.
P RO P ERT Y DESC RIP T IO N N OT ES

value Value of the parameter. When valueType is referenced: The


value is a reference to an environment
variable in string type.
When valueType is literal: This
attribute supports any valid boolean,
number, and string JSON values.
The value will be converted to the
target parameter type. Error will occur if
it cannot be converted.
The value of null is invalid. The task
will skip this parameter object, and give
a warning.

valueType Type of the parameter value. Valid types are:


literal: The value attribute represents a
literal value.
referenced: The value attribute
represents a reference to an
environment variable.

R e fe r e n c e A t t r i b u t e s

P RO P ERT Y DESC RIP T IO N N OT ES

environmentFolder Folder name of the environment. Folder will be created if not exists.
Value can be ".", which represents
parent folder of the project, which
references the environment.

environmentName Name of the referenced environment. The specified environment will be


created if not exists.

En v i r o n m e n t A t t r i b u t e s

P RO P ERT Y DESC RIP T IO N N OT ES

name Name of the environment. Environment will be created if not exists.

description Description of the environment. The value of null will be skipped.

variables An array of variable objects. Each object contains configuration


information for an environment
variable.see Variable Attributes for the
schema of a variable object.

Va r i a b l e A t t r i b u t e s

P RO P ERT Y DESC RIP T IO N N OT ES

name Name of the environment variable. Environment variable will be created if


not exists.
P RO P ERT Y DESC RIP T IO N N OT ES

type Data type of the environment variable. Valid types are:


boolean
byte
datetime
decimal
double
int16
int32
int64
sbyte
single
string
uint32
uint64

description Description of the environment variable. The value of null will be skipped.

value Value of the environment variable. This attribute supports any valid
boolean, number, and string JSON
values.
The value will be converted to the type
specified by type attribute. Error will
occur if conversion fails.
The value of null is invalid. The task will
skip this environment variable object,
and give a warning.

sensitive Whether the value of the environment Valid inputs are:


variable is sensitive. true
false

Release notes
Version 1.0.3
Release Date: October 21, 2020
Allow specifying connection string suffix for SSIS Deploy task and SSIS Catalog Configuration task.
Version 1.0.2
Release Date: May 26, 2020
Fixed an issue that SSIS Catalog Configuration task may fail in some case after configuration work is done.
Version 1.0.1
Release Date: May 9, 2020
Fixed an issue that SSIS Build task always build the whole solution even if only single dtproj file is specified as
project path.
Version 1.0.0
Release Date: May 8, 2020
General Availability (GA) release.
Added a restriction of minimum .NET framework version on agent. Currently the minimum .NET framework
version is 4.6.2.
Refined description of SSIS Build task and SSIS Deploy task.
Version 0.2.0 Preview
Release Date: March 31, 2020
Add SSIS Catalog Configuration task.
Version 0.1.3 Preview
Release Date: January 19, 2020
Fixed an issue that prevented ispac from being deployed if its original file name was changed.
Version 0.1.2 Preview
Release Date: January 13, 2020
Added more detailed exception information in the SSIS Deploy task log when the destination type is SSISDB.
Fixed the example destination path in the help text of the property Destination path of SSIS Deploy task.
Version 0.1.1 Preview
Release Date: January 6, 2020
Added a restriction of minimal agent version requirement. Currently the minimal agent version of this product is
2.144.0.
Fixed some incorrect display text for SSIS Deploy task.
Refined some error messages.
Version 0.1.0 Preview
Release Date: December 5, 2019
Initial release of SSIS DevOps Tools. This is a preview release.

Next steps
Get SSIS DevOps extension
Standalone SQL Server Integration Service (SSIS)
DevOps Tools (Preview)
11/2/2020 • 4 minutes to read • Edit Online

Standalone SSIS DevOps Tools provide a set of executables to do SSIS CICD tasks. Without the dependency on
the installation of Visual Studio or SSIS runtime, these executables can be easily integrated with any CICD platform.
The executables provided are:
SSISBuild.exe: build SSIS projects in project deployment model or package deployment model.
SSISDeploy.exe: deploy ISPAC files to SSIS catalog, or DTSX files and their dependencies to file system.

Installation
.NET framework 4.6.2 or higher is required.
Download the latest installer from download center, then install via wizard or command line:
Install via wizard
Double-click the .exe file to install, then specify a folder to extract the executables and dependency files.

Install via command line

SSISDevOpsTools.exe /Q /C /T:<full path>

SSISBuild.exe
Syntax

SSISBuild.exe -project|-p:<dtproj file path> [-configuration|-c:<configuration name>] [-projectPassword|-pp:


<project password>] [-stripSensitive|-ss] [-output|-o:<output path>] [-log|-l:<log level>[;<log path>]] [-
quiet|-q] [-help|-h|-?]
Parameters

PA RA M ET ER DESC RIP T IO N

-project |-p:<dtproj file path> File path of the dtproj file to be built.

-configuration|-c:<configuration name> Name of the project configuration to be used for build. If not
supplied, it defaults to the first defined project configuration in
the dtproj file.

-projectPassword|-pp:<project password> Password of the SSIS project and its packages. This argument
is only valid when the protection level of the SSIS project and
packages is EncryptSensitiveWithPassword or
EncryptAllWithPassword. For package deployment model, all
packages must share the same password specified by this
argument.

-stripSensitive|-ss Convert the protection level of the SSIS project to


DontSaveSensitve. When protection level is
EncryptSensitiveWithPassword or EncryptAllWithPassword, the
argument -projectPassword must be correctly set. This option
is only valid for project deployment model.

-output|-o:<output path> Output path of the build artifact. The value of this argument
will overwrite the default output path in the project
configuration.

-log|-l:<log level>[;<log path>] Log related settings.


log level: Only logs with equal or higher logging level will be
written to the log file. There are four logging levels (from low
to high): DIAG, INFO, WRN, ERR. The default logging level is
INFO if it's not specified.
log path: Path of the file to persist logs. Log file will not be
generated if the path is not specified.

-quiet|-q Do not display any logs to the standard output.

-help|-h|-? Show detailed usage information of this command-line utility.

Examples
Build a dtproj with the first defined project configuration, not encrypted with password:

SSISBuild.exe -p:"C:\projects\demo\demo.dtproj"

Build a dtproj with configuration "DevConfiguration", encrypted with password, and output the build
artifacts to a specific folder:

SSISBuild.exe -p:C:\projects\demo\demo.dtproj -c:DevConfiguration -pp:encryptionpassword -o:D:\folder

Build a dtproj with configuration "DevConfiguration", encrypted with password, striping its sensitive data,
and log level DIAG:

SSISBuild.exe -p:C:\projects\demo\demo.dtproj -c:DevConfiguration -pp:encryptionpassword -ss -l:diag


SSISDeploy.exe
Syntax

SSISDeploy.exe -source|-s:<source path> -destination|-d:<type>;<path>[;server] [-authType|-at:<auth type name>]


[-connectionStringSuffix|-css:<connection string suffix>] [-projectPassword|-pp:<project password>] [-
username|-u:<username>] [-password|-p:<password>] [-log|-l:<log level>[;<log path>]] [-quiet|-q] [-help|-h|-?]

Parameters

PA RA M ET ER DESC RIP T IO N

-source|-s:<source path> Local file path of artifacts to be deployed. ISPAC, DTSX, path of
folder for DTSX, SSISDeploymentManfiest are allowed.

-destination|-d:<type>;<path>[;server] Destination type, path of the destination folder, and server


name of the SSIS catalog where the source file will be deployed
to. Currently we support following two destination types:
CATALOG: deploy single or multiple ISPAC files to the
specified SSIS catalog. The path of CATALOG destination
should be in such format:
/SSISDB/<folder name>[/<project name>]
The optional is only valid when the source specifies a single
ISPAC file path. Server name must be specified for CATALOG
destination.
FILE: deploy SSIS packages or files specified in a single or
multiple SSISDeploymentManifest files to the specified path of
the file system. The path of FILE destination can be a local
folder path or a network folder path in such format:
\\<machine name>\<folder name>[\<sub folder name>...]

-authType|-at:<auth type name> Authentication type to access SQL Server. Mandatory for
CATALOG destination. Following types are supported:
WIN: Windows Authentication
SQL: SQL Server Authentication
ADPWD: Active Directory - Password
ADINT: Active Directory - Integrated

-connectionStringSuffix|-css:<connection string suffix> Suffix of the connection string, which is used to connect to the
SSIS catalog.

-projectPassword|-pp:<project password> Password to decrypt the ISPAC or DTSX files.

-username|-u:<username> Username to access the specified SSIS catalog or file system.


Prefix with domain name is allowed for file system access.

-password|-p:<password> Password to access the specified SSIS catalog or file system.

-log|-l:<log level>[;<log path>] Log related settings for running this utility.
log level: Only logs with equal or higher logging level will be
written to the log file. There are four logging levels (from low
to high): DIAG, INFO, WRN, ERR. The default logging level is
INFO if it's not specified.
log path: Path of the file to persist logs. Log file will not be
generated if the path is not specified.

-quiet|-q Do not display logs to the standard output.


PA RA M ET ER DESC RIP T IO N

-help|-h|-? Show detailed usage information of this command-line utility.

Examples
Deploy a single ISPAC not encrypted with password to SSIS catalog with Windows authentication.

SSISDeploy.exe -s:D:\myfolder\demo.ispac -d:catalog;/SSISDB/destfolder;myssisserver -at:win

Deploy a single ISPAC encrypted with password to SSIS catalog with SQL authentication, and rename the
project name.

SSISDeploy.exe -s:D:\myfolder\test.ispac -d:catalog;/SSISDB/folder/testproj;myssisserver -at:sql -


u:sqlusername -p:sqlpassword -pp:encryptionpassword

Deploy a single SSISDeploymentManifest and its associated files to Azure file share.

SSISDeploy.exe -s:D:\myfolder\mypackage.SSISDeploymentManifest -
d:file;\\myssisshare.file.core.windows.net\destfolder -u:Azure\myssisshare -p:storagekey

Deploy a folder of DTSX files to on-premises file system.

SSISDeploy.exe -s:D:\myfolder -d:file;\\myssisshare\destfolder

Release notes
Version 0.1.0 Preview
Release Date: October 16, 2020
Initial preview release of standalone SSIS DevOps Tools.

Next steps
Get standalone SSIS DevOps Tools
If you have questions, visit Q&A
Integration Services User Interface
11/2/2020 • 5 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
In addition to the design surfaces on the SSIS Designer tabs, the user interface provides access to the following
windows and dialog boxes for adding features to packages and configuring the properties of package objects:
The dialog boxes and windows that you use to add functionality such as logging and configurations to
packages.
The custom editors for configuring the properties of package objects. Almost every type of container, task,
and data flow component has its own custom editor.
The Advanced Editor dialog box, a generic editor that provides more detailed configuration options for
many data flow components.
SQL Server Data Tools (SSDT) also provides windows and dialog boxes for configuring the environment and
working with packages.

Dialog Boxes and Windows


After you open a package or create a new package in SSIS Designer, the following dialog boxes and windows are
available.
This table lists the dialog boxes that are available from the SSIS menu and the design surfaces of SSIS Designer.

DIA LO G B O X P URP O SE A C C ESS

Getting Star ted Access samples, tutorials, and videos. On the design surface of the Control
Flow tab or the Data Flow tab, right-
click and then click Getting Star ted .

To automatically display the Getting


Star ted window when you create a
new Integration Services project, select
Always show in new project at the
bottom of the window.

Configure SSIS Logs Configure logging for a package and its On the SSIS menu, click Logging .
tasks by adding logs and setting
logging details. -or-

Right-click anywhere on the design


surface of the Control Flow tab, and
then click Logging .

Package Configuration Organizer Add and edit package configurations. On the SSIS menu, click Package
You run the Package Configuration Configurations .
Wizard from this dialog box.
-or-

Right-click anywhere on the design


surface of the Control Flow tab, and
then click Package Configurations .
DIA LO G B O X P URP O SE A C C ESS

Digital Signing Sign a package or remove the signature On the SSIS menu, click Digital
from the package. Signing .

-or-

Right-click anywhere on the design


surface of the Control Flow tab, and
then click Digital Signing .

Set Breakpoints Enable breakpoints on tasks and set On the design surface of the Control
breakpoint properties. Flow tab, right-click a task or container,
and then click Edit Breakpoints . To set
a breakpoint on the package, right-click
anywhere on the design surface of the
Control Flow tab, and then click Edit
Breakpoints .

The Getting Star ted window provides links to samples, tutorials, and videos. To add links to additional content,
modify the SamplesSites.xml file that is included with the current release of SQL ServerIntegration Services. It is
recommended that you not modify the <GettingStartedSamples> element value that specifies the RSS feed URL.
The file is located in the <drive>:\Program Files\Microsoft SQL Server\110\DTS\Binn folder. On a 64-bit computer,
the file is located in the <drive>:\Program Files(x86)\Microsoft SQL Server\110\DTS\Binn folder
If the SamplesSites.xml file does become corrupted, replace the xml in the file with the following default xml.
<?xml version="1.0" ?>

- <SamplesSites>

<GettingStartedSamples>https://go.microsoft.com/fwlink/?LinkID=203147</GettingStartedSamples>

- <ToolboxSamples>

<Site>https://go.microsoft.com/fwlink/?LinkID=203286&query=SSIS%20{0}</Site>

</ToolboxSamples>

</SamplesSites>

This table lists the windows that are available from the SSIS and View menus and the design surfaces of SSIS
Designer.

W IN DO W P URP O SE A C C ESS

Variables Add and manage custom variables. On the SSIS menu, click Variables .

-or-

Right-click anywhere in the design


surface of the Control Flow and Data
Flow tabs, and then click Variables .

-or-

On the View menu, point to Other


Windows , and then click Variables .
W IN DO W P URP O SE A C C ESS

Log Events View log entries at run time. On the SSIS menu, click Log Events .

-or-

Right-click anywhere in the design


surface of the Control Flow and Data
Flow tabs, and then click Log Events .

-or-

On the View menu, point to Other


Windows , and then click Log Events .

Custom Editors
Integration Services provides a custom dialog box for most containers, tasks, sources, transformations, and
destinations.
The following table describes how to access custom dialog boxes.

EDITO R T Y P E A C C ESS

Container. For more information, see Integration Services On the design surface of the Control Flow tab, double-click
Containers. the container.

Task. For more information, see Integration Services Tasks. On the design surface of the Control Flow tab, double-click
the task.

Source. On the design surface of the Data Flow tab, double-click the
source.

Transformation. For more information, see Integration Services On the design surface of the Data Flow tab, double-click the
Transformations. transformation.

Destination. On the design surface of the Data Flow tab, double-click the
destination.

Advanced Editor
The Advanced Editor dialog box is a user interface for configuring data flow components. It reflects the
properties of the component using a generic layout. The Advanced Editor dialog box is not available to
Integration Services transformations that have multiple inputs.
To open this editor, click ShowAdvanced Editor in the Proper ties window or right-click a data flow component,
and then click ShowAdvanced Editor .
If you create a custom source, transformation, or destination but do not want to write a custom user interface, you
can use the Advanced Editor instead.

SQL Server Data Tools Features


SQL Server Data Tools (SSDT) provides windows, dialog boxes, and menu options for working with Integration
Services packages.
The following is a summary of the available windows and menus:
The Solution Explorer window lists projects, including the Integration Services project in which you
develop Integration Services packages, and project files.
To sort by name the packages contained in a project, right-click the SSIS Packages node and then click
Sor t by name .
The Toolbox window lists the control flow and data flow items for building control flows and data flows.
The Proper ties window lists object properties.
The Format menu provides options for sizing and aligning controls in a package.
The Edit menu provides copy and paste functionality for copying objects on the design surfaces.
The View menu provides options for modifying the graphical representation of objects in SSIS Designer
For more information about additional windows and menus, see the Visual Studio documentation.

Related Tasks
For information about how to create packages in SQL Server Data Tools (SSDT), see Create Packages in SQL Server
Data Tools

See Also
SSIS Designer
SSIS Designer
11/2/2020 • 8 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
SSIS Designer is a graphical tool that you can use to create and maintain Integration Services packages. SSIS
Designer is available in SQL Server Data Tools (SSDT) as part of an Integration Services project.
You can use SSIS Designer to perform the following tasks:
Constructing the control flow in a package.
Constructing the data flows in a package.
Adding event handlers to the package and package objects.
Viewing the package content.
At run time, viewing the execution progress of the package.
The following diagram shows SSIS Designer and the Toolbox window.

Integration Services includes additional dialog boxes and windows for adding functionality to packages, and SQL
Server Data Tools (SSDT) provides windows and dialog boxes for configuring the development environment and
working with packages. For more information, see Integration Services User Interface.
SSIS Designer has no dependency on the Integration Services service, the service that manages and monitors
packages, and it is not required that the service be running to create or modify packages in SSIS Designer. However,
if you stop the service while SSIS Designer is open, you can no longer open the dialog boxes that SSIS Designer
provides and you may receive the error message "RPC server is unavailable." To reset SSIS Designer and continue
working with the package, you must close the designer, exit SQL Server Data Tools (SSDT), and then reopen SQL
Server Data Tools (SSDT), the Integration Services project, and the package.
Undo and Redo
You can undo and redo up to 20 actions in the SSIS Designer. For a package, undo /redo is available in the Control
Flow , Data Flow , Event Handlers , and Parameters tabs, and in the Variables window. For a project, undo/redo
is available in the Project Parameters window.
You can't undo/redo changes to the new SSIS Toolbox .
When you make changes to a component using the component editor, you undo and redo the changes as a set
rather than undoing and redoing individual changes. The set of changes appears as a single action in the undo and
redo drop-down list.
To undo an action, click the undo toolbar button, Edit/Undo menu item, or press CTRL+Z. To redo an action, click
the redo toolbar button, Edit/Redo menu item or press CTRL + Y. You can undo and redo multiple actions, by
clicking the arrow next to the toolbar button, highlighting multiple actions in the drop-down list, and then clicking
in the list.

Parts of the SSIS Designer


SSIS Designer has five permanent tabs: one each for building package control flow, data flows, parameters, and
event handlers, and one tab for viewing the contents of a package. At run time a sixth tab appears that shows the
execution progress of a package while it is running and the execution results after it finishes.
In addition, SSIS Designer includes the Connection Managers area for adding and configuring the connection
managers that a package uses to connect to data.
Control Flow Tab
You construct the control flow in a package on the design surface of the Control Flow tab. Drag items from
Toolbox to the design surface and connect them into a control flow by clicking the icon for the item, and then
dragging the arrow from one item to another.
For more information, see Control Flow.
Data Flow Tab
If a package contains a Data flow task, you can add data flows to the package. You construct the data flows in a
package on the design surface of the Data Flow tab. Drag items from Toolbox to the design surface and connect
them into a data flow by clicking the icon for the item, and then dragging the arrow from one item to another.
For more information, see Data Flow.
Parameters Tab
Integration Services (SSIS) parameters allow you to assign values to properties within packages at the time of
package execution. You can create project parameters at the project level and package parameters at the package
level. Project parameters are used to supply any external input the project receives to one or more packages in the
project. Package parameters allow you to modify package execution without having to edit and redeploy the
package. This tab allows you to manage package parameters.
For more information about parameters, see Integration Services (SSIS) Parameters.

IMPORTANT!! Parameters are available only to projects developed for the project deployment model.
Therefore, you will see the Parameters tab only for packages that are part of a project configured to use the
project deployment model.

Event Handlers Tab


You construct the events in a package on the design surface of the Event Handlers tab. On the Event Handlers
tab, you select the package or package object that you want to create an event handler for, and then select the event
to associate with the event handler. An event handler has a control flow and optional data flows.
For more information, see Add an Event Handler to a Package.
Package Explorer Tab
Packages can be complex, including many tasks, connection managers, variables, and other elements. The explorer
view of the package lets you see a complete list of package elements.
For more information, see View Package Objects.
Progress/Execution Result Tab
While a package is running, the Progress tab shows the execution progress of the package. After the package has
finished running, the execution results remain available on the Execution Result tab.

NOTE: To enable or disable the display of messages on the Progress tab, toggle the Debug Progress
Repor ting option on the SSIS menu.

Connection Managers Area


You add and modify the connection managers that a package uses in the Connection Managers area. Integration
Services includes connection managers to connect to a variety of data sources, such as text files, OLE DB databases,
and .NET providers.
For more information, see Integration Services (SSIS) Connections and Create Connection Managers.

Control Flow tab


Use the Control Flow tab of SSIS Designer to build the control flow in a Integration Services package.
Create the control flow by dragging graphical objects that represent SSIS tasks and containers from the Toolbox to
the design surface of the Control Flow tab, and then connecting the objects by dragging the connector on an
object to another object. Each connecting line represents a precedence constraint that specifies the order in which
the tasks and containers run
Additionally, you can use SSIS Designer to add the following functionality from the Control Flow tab:
Implement logging
Create package configurations
Sign the package with a certificate
Manage variables
Add annotations
Configure breakpoints
To add these functions to individual tasks or containers in SSIS Designer, right-click the object on the design
surface, and then select the option.

Data Flow tab


Use the Data Flow tab of SSIS Designer to create data flows in a Integration Services package.
Create the data flows by dragging graphical objects that represent sources, transformations, and destinations from
the Toolbox to the design surface of the Data Flow tab, and then connecting the objects to create paths that
determine the sequence in which the transformations run.
Right-click a path, and then click Data Viewers, to add data viewers to view the data before and after each data
flow object.
You can also use SSIS Designer to add the following functionality from the Data Flow tab:
Manage variables
Add annotations
To add these functions in SSIS Designer, right-click the design surface, and then select the option you want.

Event Handlers tab


Use the Event Handlers tab of SSIS Designer to build a control flow in an Integration Services package. An event
handler runs in response to an event raised by the package or by a task or container in the package.

Options
Executable
Select the executable for which you want to build an event handler. The executable can be the package, or a task or
containers in the package.
Event handler
Select a type of event handler. Create the event handler by dragging items from the Toolbox .
Delete
Select an event handler, and remove it from the package by clicking Delete .
Click here to create an <event handler name> for the executable <executable name>
Click to create the event handler.
Create the control flow by dragging graphical objects that represent SSIS tasks and containers from the Toolbox to
the design surface of the Event Handlers tab, and then connecting the objects by using precedence constraints to
define the sequence in which they run.
Additionally, to add annotations, right-click the design surface, and then on the menu, click Add Annotation .

Package Explorer tab


Use the Package Explorer tab of SSIS Designer to see a hierarchical view of all of the elements in a package:
configurations, connections, event handlers, executable objects such as tasks and containers, log providers,
precedence constraints, and variables. If a package contains a Data Flow task, the Package Explorer tab includes a
node that contains a hierarchical view of the data flow components.
Right-click a package element, and then click Proper ties to show the properties of the element in the Proper ties
window, or click Delete to delete the element.

Progress tab
Use the Progress tab of SSIS Designer to view the progress of execution of an Integration Services package when
you run the package in SQL Server Data Tools (SSDT). The Progress tab lists the start time, the finish time, and the
elapsed time for validation and execution of the package and its executables; any information or warnings for the
package; progress notifications; the success or failure of the package; and any error messages that are generated
during package execution.
To enable or disable the display of messages on the Progress tab, toggle the Debug Progress Repor ting option
on the SSIS menu. Disabling progress reporting can help improve performance while running a complex package
in SQL Server Data Tools.
After the package stops running, the Progress tab becomes the Execution Results tab.

Connection Managers area


Packages use connection managers to connect to data sources such as files, relational databases, and servers.
Use the Connections Managers area of SSIS Designer to add, delete, modify, rename, and copy and paste the
connection managers.
Right-click in this area, and then on the menu, click the option for the task you want to perform.

Related Tasks
Create Packages in SQL Server Data Tools

See Also
Integration Services User Interface
Advanced Editor
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
Use the Advanced Editor dialog box to configure to configure properties for the selected Integration Services
object.
The Advanced Editor is available for most Integration Services objects that have configurable properties. It is the
only editor available for those objects that do not expose a custom user interface.
Integration Services data flow objects have properties that can be set at the component level, the input and output
level, and the input and output column level. The Advanced Editor enumerates all the common and custom
properties of the selected object and displays them on up to four of the following five tabs as applicable:
Connection Managers -- use this tab to set connection properties
Component Proper ties -- use this tab to set component-level properties
Column Mappings -- use this tab to map available columns as output columns
Input Columns -- use this tab to select input columns
Input and Output Proper ties -- use this tab to set input and output properties; and to add and remove
outputs, select or remove columns for inputs and outputs, and set properties for inputs and outputs
The properties displayed vary by component. For more information on the properties that may be displayed in the
Advanced Editor , see the following topics:
Common Properties
Transformation Custom Properties
Path Properties
For more information about the specific component that you are editing, see the description of the component in
the Data Flow Elements section of the Integration Services Objects and Concepts documentation:
Integration Services Transformations

See Also
Integration Services Error and Message Reference
Group or Ungroup Components
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
The Control Flow , Data Flow , and Event Handlers tabs in SSIS Designer supports collapsible grouping. If a
package has many components, the tabs can become crowded, making it difficult to view all the components at
one time and to locate the item with which you want to work. The collapsible grouping feature can conserve space
on the work surface and make it easier to work with large packages.
You select the components that you want to group, group them, and then expand or collapse the groups to suit
your work. Expanding a group provides access to the properties of the components in the group. The precedence
constraints that connect tasks and containers are automatically included in the group.
The following are considerations for grouping components.
To group components, the control flow, data flow, or event handler must contain more than one component.
Groups can also be nested, making it possible to create groups within groups. The design surface can
implement multiple un-nested groups, but a component can belong to only one group, unless the groups
are nested.
When a package is saved, SSIS Designer saves the grouping, but the grouping has no effect on package
execution. The ability to group components is a design-time feature; it does not affect the run-time behavior
of the package.
To group components
1. In SQL Server Data Tools (SSDT), open the Integration Services project that contains the package you want.
2. In Solution Explorer, double-click the package to open it.
3. Click the Control Flow , Data Flow , or Event Handlers tab.
4. On the design surface of the tab, select the components you want to group, right-click a selected component,
and then click Group .
5. To save the updated package, click Save Selected Items on the File menu.
To ungroup components
1. In SQL Server Data Tools (SSDT), open the Integration Services project that contains the package you want.
2. In Solution Explorer, double-click the package to open it.
3. Click the Control Flow , Data Flow , or Event Handlers tab.
4. On the design surface of the tab, select the group that contains the component you want to ungroup, right-
click, and then click Ungroup .
5. To save the updated package, click Save Selected Items on the File menu.

See Also
Add or Delete a Task or a Container in a Control Flow
Connect Tasks and Containers by Using a Default Precedence Constraint
Use Annotations in Packages
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
The SSIS Designer provides annotations, which you can use to make packages self-documenting and easier to
understand and maintain. You can add annotations to the control flow, data flow, and event handler design surfaces
of SSIS Designer. The annotations can contain any type of text, and they are useful for adding labels, comments,
and other descriptive information to a package. Annotations are a design-time feature only. For example, they are
not written to logs.
When you press ENTER, the text wraps to the next line. The annotation box automatically increases in size as you
add additional lines of text. Package annotations are persisted as clear text in the CDATA section of the package file.
For more information about changes to the format of the package file, see SSIS Package Format.
When you save the package, SSIS Designer saves the annotations in the package.

Add an annotation to a package


1. In SQL Server Data Tools (SSDT), open the Integration Services project that contains the package to which
you want to add an annotation.
2. In Solution Explorer, double-click the package to open it.
3. In SSIS Designer, right-click anywhere on the design surface of the Control Flow , Data Flow , or Event
Handler tab, and then click Add Annotation . A text block appears on the design surface of the tab.
4. Add text.

NOTE
If you add no text, the text block is removed when you click outside the block.

5. To change the size or format of the text in the annotation, right-click the annotation and then click Set Text
Annotation Font .
6. To add an additional line of text, press ENTER.
The annotation box automatically increases in size as you add additional lines of text.
7. To add an annotation to a group, right-click the annotation and then click Group .
8. To save the updated package, on the File menu, click Save All .
SSIS Toolbox
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
All components installed on the local machine automatically appear in the SSIS Toolbox . When you install
additional components, right-click inside the toolbox and then click Refresh Toolbox to add the components.
When you create a new SSIS project or open an existing project, the SSIS Toolbox displays automatically. You can
also open the toolbox by clicking the toolbox button that is located in the top-right corner of the package design
surface, or by clicking VIEW -> Other Windows -> SSIS Toolbox.

NOTE
If you can't see the toolbox, go to VIEW -> Other Windows -> SSIS Toolbox.

Get more information about a component in the toolbox by clicking the component to view its description at the
bottom of the toolbox. For some components you can also access samples that demonstrate how to configure and
use the components. The samples are available on MSDN. To access the samples from the SSIS Toolbox , click the
Find Samples link that appears below the description.

NOTE
You can't remove installed components from the toolbox.

Toolbox categories
In the SSIS Toolbox , control flow and data flow components are organized into categories. You can expand and
collapse categories, and rearrange components. Restore the default organization by right-clicking inside the toolbox
and then click Restore Toolbox Defaults .
The Favorites and Common categories appear in the toolbox when you select the Control Flow , Data Flow , and
Event Handlers tabs. The Other Tasks category appears in the toolbox when you select the Control Flow tab or
the Event Handlers tab. The Other Transforms , Other Sources , and Other Destinations categories appear in
the toolbox when you select the Data Flow tab.

Add Azure components to the Toolbox


The Azure Feature Pack for Integration Services contains connection managers to connect to Azure data sources
and tasks to do common Azure operations. Install the Feature Pack to add these items to the Toolbox. For more info,
see Azure Feature Pack for Integration Services (SSIS).

Move a Toolbox item to another category


1. Right-click an item in the SSIS Toolbox, and then click one of the following:
Move to Favorites
Move to Common
Move to Other Sources
Move to Other Destinations
Move to Other Transforms
Move to Other Tasks

Refresh the SSIS Toolbox


1. Right-click in the SSIS Toolbox, and then click Refresh Toolbox .
General Page of Integration Services Designers
Options
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
Use the General page of the Integration Ser vices Designers page in the Options dialog box to specify the
options for loading, displaying, and upgrading packages.
To open the General page, in SQL Server Data Tools (SSDT), on the Tools menu, click Options , expand Business
Intelligence Designers , and select Integration Ser vices Designers .

Options
Check digital signature when loading a package
Select to have Integration Services check the digital signature when loading a package. Integration Services will
only check whether the digital signature is present, is valid, and is from a trusted source. Integration Services will
not check whether the package has been changed since the package was signed.
If you set the BlockedSignatureStates registry value, this registry value overrides the Check digital signature
when loading a package option. For more information, see Implement a Signing Policy by Setting a Registry
Value.
For more information about digital certificates and packages, see Identify the Source of Packages with Digital
Signatures.
Show warning if package is unsigned
Select to display a warning when loading a package that is not signed.
Show precedence constraint labels
Select which label-Success, Failure, or Completion-to display on precedence constraints when viewing packages in
SQL Server Data Tools (SSDT).
Scripting language
Select the default scripting language for new Script tasks and Script components.
Update connection strings to use new provider names
When opening or upgrading SQL Server 2005 Integration Services (SSIS) packages, update connection strings to
use the names for the following providers, for the current release of SQL ServerIntegration Services:
Analysis Services OLE DB provider
SQL Server Native Client
The SSIS Package Upgrade Wizard updates only connection strings that are stored in connection managers. The
wizard does not update connection strings that are constructed dynamically by using the Integration Services
expression language, or by using code in a Script task.
Create new package ID
When upgrading SQL Server 2005 Integration Services (SSIS) packages, create new package IDs for the upgraded
versions of the packages.

See Also
Security Overview (Integration Services)
Extending Packages with Scripting
Integration Services (SSIS) Packages
11/2/2020 • 8 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
A package is an organized collection of connections, control flow elements, data flow elements, event handlers,
variables, parameters, and configurations, that you assemble using either the graphical design tools that SQL
Server Integration Services provides, or build programmatically. You then save the completed package to SQL
Server, the SSIS Package Store, or the file system, or you can deploy the ssISnoversion project to the SSIS server.
The package is the unit of work that is retrieved, executed, and saved.
When you first create a package, it is an empty object that does nothing. To add functionality to a package, you
add a control flow and, optionally, one or more data flows to the package.
The following diagram shows a simple package that contains a control flow with a Data Flow task, which in turn
contains a data flow.

After you have created the basic package, you can add advanced features such as logging and variables to extend
package functionality. For more information, see the section about Objects that Extend Package Functionality.
The completed package can then be configured by setting package-level properties that implement security,
enable restarting of packages from checkpoints, or incorporate transactions in package workflow. For more
information, see the section about Properties that Support Extended Features.

Contents of a package
Tasks and containers (control flow). A control flow consists of one or more tasks and containers that execute
when the package runs. To control order or define the conditions for running the next task or container in the
package control flow, you use precedence constraints to connect the tasks and containers in a package. A subset
of tasks and containers can also be grouped and run repeatedly as a unit within the package control flow. For
more information, see Control Flow.
Data sources and destinations (data flow). A data flow consists of the sources and destinations that extract
and load data, the transformations that modify and extend data, and the paths that link sources, transformations,
and destinations. Before you can add a data flow to a package, the package control flow must include a Data Flow
task. The Data Flow task is the executable within the SSIS package that creates, orders, and runs the data flow. A
separate instance of the data flow engine is opened for each Data Flow task in a package. For more information,
see Data Flow Task and Data Flow.
Connection managers (connections). A package typically includes at least one connection manager. A
connection manager is a link between a package and a data source that defines the connection string for
accessing the data that the tasks, transformations, and event handlers in the package use. Integration Services
includes connection types for data sources such as text and XML files, relational databases, and Analysis Services
databases and projects. For more information, see Integration Services (SSIS) Connections.

Objects that extend package functionality


Packages can include additional objects that provide advanced features or extend existing functionality, such as
event handlers, configurations, logging, and variables.
Event Handlers
An event handler is a workflow that runs in response to the events raised by a package, task, or container. For
example, you could use an event handler to check disk space when a pre-execution event occurs or if an error
occurs, and send an e-mail message that reports the available space or error information to an administrator. An
event handler is constructed like a package, with a control flow and optional data flows. Event handlers can be
added to individual tasks or containers in the package. For more information, see Integration Services (SSIS)
Event Handlers.
Configurations
A configuration is a set of property-value pairs that defines the properties of the package and its tasks,
containers, variables, connections, and event handlers when the package runs. Using configurations makes it
possible to update properties without modifying the package. When the package is run, the configuration
information is loaded, updating the values of properties. For example, a configuration can update the connection
string of connection.
The configuration is saved and then deployed with the package when the package is installed on a different
computer. The values in the configuration can be updated when the package is installed to support the package in
a different environment. For more information, see Create Package Configurations.
Logging and Log Providers
A log is a collection of information about the package that is collected when the package runs. For example, a log
can provide the start and finish time for a package run. A log provider defines the destination type and the format
that the package and its containers and tasks can use to log run-time information. The logs are associated with a
package, but the tasks and containers in the package can log information to any package log. Integration Services
includes a variety of built-in log providers for logging. For example, Integration Services includes log providers
for SQL Server and text files. You can also create custom log providers and use them for logging. For more
information, see Integration Services (SSIS) Logging.
Variables
Integration Services supports system variables and user-defined variables. The system variables provide useful
information about package objects at run time, and user-defined variables support custom scenarios in packages.
Both types of variables can be used in expressions, scripts, and configurations.
The package-level variables include the pre-defined system variables available to a package and the user-defined
variables with package scope. For more information, see Integration Services (SSIS) Variables.
Parameters
Integration Services parameters allow you to assign values to properties within packages at the time of package
execution. You can create project parameters at the project level and package parameters at the package level.
Project parameters are used to supply any external input the project receives to one or more packages in the
project. Package parameters allow you to modify package execution without having to edit and redeploy the
package. For more information, see Integration Services (SSIS) Parameters.

Package properties that support extended features


The package object can be configured to support features such as restarting the package at checkpoints, signing
the package with a digital certificate, setting the package protection level, and ensuring data integrity by using
transactions.
Restarting Packages
The package includes checkpoint properties that you can use to restart the package when one or more of its tasks
fail. For example, if a package has two Data Flow tasks that update two different tables and the second task fails,
the package can be rerun without repeating the first Data Flow task. Restarting a package can save time for long-
running packages. Restarting means you can start the package from the failed task instead of having to rerun the
whole package. For more information, see Restart Packages by Using Checkpoints.
Securing Packages
A package can be signed with a digital signature and encrypted by using a password or a user key. A digital
signature authenticates the source of the package. However, you must also configure Integration Services to
check the digital signature when the package loads. For more information, see Identify the Source of Packages
with Digital Signatures and Access Control for Sensitive Data in Packages.
Supporting Transactions
Setting a transaction attribute on the package enables tasks, containers, and connections in the package to join
the transaction. Transaction attributes ensure that the package and its elements succeed or fail as a unit. Packages
can also run other packages and enroll other packages in transactions, so that you can run multiple packages as a
single unit of work. For more information, see Integration Services Transactions.

Custom log entries available on the package


The following table lists the custom log entries for packages. For more information, see Integration Services
(SSIS) Logging.

LO G EN T RY DESC RIP T IO N

PackageStar t Indicates that the package began to run.

Note: This log entry is automatically written to the log. You


cannot exclude it.

PackageEnd Indicates that the package completed.

Note: This log entry is automatically written to the log. You


cannot exclude it.

Diagnostic Provides information about the system configuration that


affects package execution such as the number executables
that can be run concurrently.

Set the properties of a package


You can set properties in the Proper ties window of SQL Server Data Tools (SSDT) or programmatically.
For information about how to set these properties using SQL Server Data Tools (SSDT), see Set Package
Properties.
For information about programmatically setting these properties, see Package.

Reuse an existing package as a template


Packages are frequently used as templates from which to build packages that share basic functionality. You build
the basic package and then copy it, or you can designate the package is a template. For example, a package that
downloads and copies files and then extracts the data may include the FTP and File System tasks in a Foreach
Loop that enumerates files in a folder. It may also include Flat File connection managers to access the data, and
Flat File sources to exact the data. The destination of the data varies, and the destination is added to each new
package after it is copied from the basic package. You can also create packages and then use them as templates
for the new packages that you add to an Integration Services project. For more information, see Create Packages
in SQL Server Data Tools.
When a package is first created, either programmatically or by using SSIS Designer, a GUID is added to its ID
property and a name to its Name property. If you create a new package by copying an existing package or by
using a template package, the name and the GUID are copied as well. This can be a problem if you use logging,
because the GUID and the name of the package are written to the logs to identify the package to which the
logged information belongs. Therefore, you should update the name and the GUID of the new packages to help
differentiate them from the package from which they were copied and from each other in the log data.
To change the package GUID, you regenerate a GUID in the ID property in the Properties window in SQL Server
Data Tools (SSDT). To change the package name, you can update the value of the Name property in the
Properties window. You can also use the dtutil command prompt, or update the GUID and name
programmatically. For more information, see Set Package Properties and dtutil Utility.

Related Tasks
Integration Services includes two graphical tools, SSIS Designer and SQL Server Import and Export Wizard, in
addition to the SSIS object model for creating packages. See the following topics for details.
Import and Export Data with the SQL Server Import and Export Wizard
Create Packages in SQL Server Data Tools
See Building Packages Programmatically in the Developer Guide.
Create Packages in SQL Server Data Tools
11/2/2020 • 3 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
In SQL Server Data Tools (SSDT), you can create a new package by using one of the following methods:
Use the package template that Integration Services includes.
Use a custom template
To use custom packages as templates for creating new packages, you simply copy them to the
DataTransformationItems folder. By default, this folder is in C:\Program Files\Microsoft Visual Studio
10.0\Common7\IDE\PrivateAssemblies\ProjectItems\DataTransformationProject.
Copy an existing package.
If existing packages include functionality that you want to reuse, you can build the control flow and data
flows in the new package more quickly by copying and pasting objects from other packages. For more
information about using copy and paste in Integration Services projects, see Reuse of Package Objects.
If you create a new package by copying an existing package or by using a custom package as a template,
the name and the GUID of the existing package are copied as well. You should update the name and the
GUID of the new package to help differentiate it from the package from which it was copied. For example, if
packages have the same GUID, it is more difficult to identify the package to which log data belongs. You
can regenerate the GUID in the ID property and update the value of the Name property by using the
Properties window in SQL Server Data Tools (SSDT). For more information, see Set Package Properties and
dtutil Utility.
Use a custom package that you have designated as a template.
Run the SQL Server Import and Export Wizard
The SQL Server Import and Export Wizard creates a complete package for a simple import or export. This
wizard configures the connections, source, and destination, and adds any data transformations that are
required to let you run the import or export immediately. You can optionally save the package to run it
again later, or to refine and enhance the package in SQL Server Data Tools. However, if you save the
package, you must add the package to an existing Integration Services project before you can change the
package or run the package in SQL Server Data Tools.
The packages that you create in SQL Server Data Tools (SSDT) using SSIS Designer are saved to the file system. To
save a package to SQL Server or to the package store, you need to save a copy of the package. For more
information, see Save a Copy of a Package.
For a video that demonstrates how to create a basic package using the default package template, see Creating a
Basic Package (SQL Server Video).

Get SQL Server Data Tools


To install SQL Server Data Tools (SSDT), see Download SQL Server Data Tools (SSDT).

Create a package in SQL Server Data Tools using the Package Template
1. In SQL Server Data Tools (SSDT), open the Integration Services project in which you want to create a
package.
2. In Solution Explorer, right-click the SSIS Packages folder, and then click New SSIS Package .
3. Optionally, add control flow, data flow tasks, and event handlers to the package. For more information, see
Control Flow, Data Flow, and Integration Services (SSIS) Event Handlers.
4. On the File menu, click Save Selected Items to save the new package.

NOTE
You can save an empty package.

Choose the target version of a project and its packages


1. In Solution Explorer, right-click on an Integration Services project and select Proper ties to open the
property pages for the project.
2. On the General tab of Configuration Proper ties , select the TargetSer verVersion property, and then
choose SQL Server 2016, SQL Server 2014, or SQL Server 2012.

You can create, maintain, and run packages that target SQL Server 2016, SQL Server 2014, or SQL Server 2012.
Add Copy of Existing Package
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
Use the Add Copy of Existing Package dialog box to add a copy of a package stored in SQL Server, the file
system, or the SSIS Package Store to an Integration Services project.

Options
Package location
Select the type of storage location from which to copy the package.
Ser ver
If copying from SQL Server or the SSIS Package Store, type a server name or select a server from the list.
Authentication type
If copying from SQL Server, select an authentication type.
User name
If using SQL Server Authentication, provide a user name.
Password
If using SQL Server Authentication, provide a password.
Package path
Type the package path, or click the browse button (...) and locate the package to copy.

See Also
Save Copy of Package
Save Packages
Integration Services Service (SSIS Service)
Set Package Properties
11/2/2020 • 7 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
When you create a package in SQL Server Data Tools (SSDT) by using the graphical interface that Integration
Services provides, you set the properties of the package object in the Properties window.
The Proper ties window provides a categorized and alphabetical list of properties. To arrange the Proper ties
window by category, click the Categorized icon.
When arranged by category, the Proper ties window groups properties in the following categories:
Checkpoints
Execution
Forced Execution Value
Identification
Misc
Security
Transactions
Version
For information about additional package properties that you cannot set in the Proper ties window, see Package.
To set package properties in the Properties window
Set the Properties of a Package

Properties by Category
The following tables list the package properties by category.
Checkpoints
You can use the properties in this category to restart the package from a point of failure in the package control
flow, instead of rerunning the package from the beginning of its control flow. For more information, see Restart
Packages by Using Checkpoints.

P RO P ERT Y DESC RIP T IO N

CheckpointFileName The name of the file that captures the checkpoint information
that enables a package to restart. When the package finishes
successfully, this file is deleted.

CheckpointUsage Specifies when a package can be restarted. The values are


Never , IfExists , and Always . The default value of this
property is Never , which indicates that the package cannot
be restarted. For more information, see DTSCheckpointUsage.
P RO P ERT Y DESC RIP T IO N

SaveCheckpoints Specifies whether the checkpoints are written to the


checkpoint file when the package runs. The default value of
this property is False .

NOTE
The /CheckPointing on option of dtexec is equivalent to setting the SaveCheckpoints property of the package to True,
and the CheckpointUsage property to Always. For more information, see dtexec Utility.

Execution
The properties in this category configure the run-time behavior of the package object.

P RO P ERT Y DESC RIP T IO N

DelayValidation Indicates whether package validation is delayed until the


package runs. The default value for this property is False .

Disable Indicates whether the package is disabled. The default value


of this property is False .

DisableEventHandlers Specifies whether the package event handlers run. The default
value of this property is False .

FailPackageOnFailure Specifies whether the package fails if an error occurs in a


package component. The only valid value of this property is
False .

FailParentOnError Specifies whether the parent container fails if an error occurs


in a child container. The default value is of this property is
False .

MaxConcurrentExecutables The number of executable files that the package can run
concurrently. The default value of this property is -1 , which
indicates that there is no limit.

MaximumErrorCount The maximum number of errors that can occur before a


package stops running. The default value of this property is 1 .

PackagePriorityClass The Win32 thread priority class of the package thread. The
values are Default , AboveNormal, Normal, BelowNormal,
Idle . The default value of this property is Default . For more
information, see DTSPriorityClass.

Forced Execution Value


The properties in this category configure an optional execution value for the package.

P RO P ERT Y DESC RIP T IO N

ForcedExecutionValue If ForceExecutionValue is set to True , a value that specifies the


optional execution value that the package returns. The default
value of this property is 0 .
P RO P ERT Y DESC RIP T IO N

ForcedExecutionValueType The data type of ForcedExecutionValue. The default value of


this property is Int32 .

ForceExecutionValue A Boolean value that specifies whether the optional execution


value of the container should be forced to contain a particular
value. The default value of this property is False .

Identification
The properties in this category provide information such as the unique identifier and name of the package.

P RO P ERT Y DESC RIP T IO N

CreationDate The date that the package was created.

CreatorComputerName The name of the computer on which the package was created.

CreatorName The name of the person who created the package.

Description A description of package functionality.

ID The package GUID, which is assigned when the package is


created. This property is read-only. To generate a new random
value for the ID property, select <Generate New ID> in
the drop-down list.

Name The name of the package.

PackageType The package type. The values are Default , DTSDesigner ,


DTSDesigner100 , DTSWizard , SQLDBMaint , and
SQLReplication . The default value of this property is
Default . For more information, see DTSPackageType.

Misc
The properties in this category are used to access the configurations and expressions that a package uses and to
provide information about the locale and logging mode of the package. For more information, see Use Property
Expressions in Packages.

P RO P ERT Y DESC RIP T IO N

Configurations The collection of configurations that the package uses. Click


the browse button (...) to view and configure package
configurations.
P RO P ERT Y DESC RIP T IO N

Expressions Click the browse button (...) to create expressions for package
properties.

Note that you can create property expressions for all the
package properties that object model includes, not just the
properties listed in the Properties window.

For more information, see Use Property Expressions in


Packages.

To view existing property expressions, expand Expressions .


Click the browse button (...) in an expression text box to
modify and evaluate an expression.

ForceExecutionResult The execution result of the package. The values are None ,
Success , Failure , and Completion . The default value of this
property is None . For more information, see
T:Microsoft.SqlServer.Dts.Runtime.DTSForcedExecResult.

LocaleId A Microsoft Win32 locale. The default value of this property is


the locale of the operating system on the local computer.

LoggingMode A value that specifies the logging behavior of the package.


The values are Disabled , Enabled , and UseParentSetting .
The default value of this property is UseParentSetting . For
more information, see DTSLoggingMode.

OfflineMode Indicates whether the package is in offline mode. This


property is read-only. The property is set at the project level.
Normally, SSIS Designer tries to connect to each data source
used by your package to validate the metadata associated
with sources and destinations. You can enable Work Offline
from the SSIS menu, even before you open a package, to
prevent these connection attempts and the resulting
validation errors when the data sources are not available. You
can also enable Work Offline to speed up operations in the
designer, and disable it only when you want your package to
be validated.

SuppressConfigurationWarnings Indicates whether the warnings generated by configurations


are suppressed. The default value of this property is False .

UpdateObjects Indicates whether the package is updated to use newer


versions of the objects it contains, if newer versions are
available. For example, if this property is set to True , a
package that includes a Bulk Insert task is updated to use the
newer version of the Bulk Insert task that Integration Services
provides. The default value of this property is False .

Security
The properties in this category are used to set the protection level of the package. For more information, see
Access Control for Sensitive Data in Packages.

P RO P ERT Y DESC RIP T IO N


P RO P ERT Y DESC RIP T IO N

PackagePassword The password for package protection levels


(Encr yptSensitiveWithPassword and
Encr yptAllWithPassword ) that require passwords.

ProtectionLevel The protection level of the package. The values are


DontSaveSensitive , Encr yptSensitiveWithUserKey ,
Encr yptSensitiveWithPassword ,
Encr yptAllWithPassword , and Ser verStorage . The default
value of this property is Encr yptSensitiveWithUserKey .
For more information, see DTSProtectionLevel.

Transactions
The properties in this category configure the isolation level and the transaction option of the package. For more
information, see Integration Services Transactions.

P RO P ERT Y DESC RIP T IO N

IsolationLevel The isolation level of the package transaction. The values are
Unspecified , Chaos , ReadUncommitted ,
ReadCommitted , RepeatableRead , Serializable , and
Snapshot . The default value of this property is Serializable .

Note: The Snapshot value of the IsolationLevel property is


incompatible with package transactions. Therefore, you
cannot use the IsolationLevel property to set the isolation
level of package transactions to Shapshot . Instead, use an
SQL query to set package transactions to Snapshot . For
more information, see SET TRANSACTION ISOLATION LEVEL
(Transact-SQL).

The system applies the IsolationLevel property to package


transactions only when the value of the TransactionOption
property is Required .

The value of the IsolationLevel property requested by a


child container is ignored when the following conditions are
true:
The value of the child container's TransactionOption
property is Suppor ted .
The child container joins the transaction of a parent container.

The value of the IsolationLevel property requested by the


container is respected only when the container initiates a new
transaction. A container initiates a new transaction when the
following conditions are true:
The value of the container's TransactionOption property is
Required .
The parent has not already started a transaction.

For more information, see IsolationLevel.

TransactionOption The transactional participation of the package. The values are


NotSuppor ted , Suppor ted , Required . The default value of
this property is Suppor ted . For more information, see
DTSTransactionOption.
Version
The properties in this category provide information about the version of the package object.

P RO P ERT Y DESC RIP T IO N

VersionBuild The version number of the build of the package.

VersionComments Comments about the version of the package.

VersionGUID The GUID of the version of the package. This property is


read-only.

VersionMajor The latest major version of the package.

VersionMinor The latest minor version of the package.

Set package properties in the Properties window


1. In SQL Server Data Tools (SSDT), open the Integration Services project that contains the package you want
to configure.
2. In Solution Explorer , double-click the package to open it in SSIS Designer, or right-click and select View
Designer .
3. Click the Control Flow tab and then do one of the following:
Right-click anywhere in the background of the control flow design surface, and then click
Proper ties .
On the View menu, click Proper ties Window .
4. Edit the package properties in the Proper ties window.
5. On the File menu, click Save Selected Items to save the updated package.
View Package Objects
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
In SSIS Designer, the Package Explorer tab provides an explorer view of the package. The view reflects the
container hierarchy of the Integration Services architecture. The package container is at the top of the hierarchy,
and you expand the package to view the connections, executables, event handlers, log providers, precedence
constraints, and variables in the package.
The executables, which are the containers and tasks in the package, can include event handlers, precedence
constraints, and variables. Integration Services supports a nested hierarchy of containers, and the For Loop,
Foreach Loop, and Sequence containers can include other executables.
If a package includes a data flow, the Package Explorer lists the Data Flow task and includes a Components
folder that lists the data flow components.
From the Package Explorer tab, you can delete objects in a package and access the Proper ties window to view
object properties.
The following diagram shows a tree view of a simple package.

View the package structure and content


1. In SQL Server Data Tools (SSDT), open the Integration Services project that contains the package you want
to view in Package Explorer .
2. Click the Package Explorer tab.
3. To view the contents of the Variables , Precedence Constraints , Event Handlers , Connection
Managers , Log Providers , or Executables folders, expand each folder.
4. Depending on the package structure, expand any next-level folders.

View the properties of a package object


Right-click an object and then click Proper ties to open the Proper ties window.

Delete an object in a package


Right-click an object and then click Delete .
See Also
Integration Services Tasks
Integration Services Containers
Precedence Constraints
Integration Services (SSIS) Variables
Integration Services (SSIS) Event Handlers
Integration Services (SSIS) Logging
Copy a Package in SQL Server Data Tools
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
This topic describes how to create a new Integration Services package by copying an existing package, and how to
update the Name and GUID properties of the new package.
To copy a package
1. In SQL Server Data Tools (SSDT), open the Integration Services project that contains the package that you
want to copy.
2. In Solution Explorer, double-click the package.
3. Verify either the package to copy is selected in Solution Explorer or the tab in SSIS Designer that contains the
package is the active tab
4. On the File menu, click Save <package name> As .

NOTE
The package must be opened in SSIS Designer before the Save As option appears on the File menu.

5. Optionally, browse to a different folder.


6. Update the name of the package file. Make sure that you retain the .dtsx file extension.
7. Click Save .
8. At the prompt, choose whether to update the name of the package object to match the file name. If you click
Yes , the Name property of the package is updated. The new package is added to the Integration Services
project and opened in SSIS Designer.
9. Optionally, click in the background of the Control Flow tab, and the click Proper ties .
10. In the Properties window, click the value of the ID property, and then in the drop-down list click <Generate
New ID> .
11. On the File menu, click Save Selected Items to save the new package.

See Also
Save a Copy of a Package
Create Packages in SQL Server Data Tools
Integration Services (SSIS) Packages
Copy Package Objects
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
This topic describes how to copy control flow items, data flow items, and connection managers within a package or
between packages.
To copy control and data flow items
1. In SQL Server Data Tools (SSDT), open the Integration Services project that contains the packages that you
want work with.
2. In Solution Explorer, double-click the packages that you want to copy between.
3. In SSIS Designer, click the tab for the package that contains the items to copy and click the Control Flow ,
Data Flow , or Event Handlers tab.
4. Select the control flow or data flow items to copy. You can either select items one at a time by pressing the
Shift key and clicking the item or select items as a group by dragging the pointer across the items you want
to select.

IMPORTANT
The precedence constraints and paths that connect items are not selected automatically when you select the two
items that they connect. To copy an ordered workflow-a segment of control flow or data flow-make sure to also copy
the precedence constrains and the paths.

5. Right-click a selected item and click Copy .


6. If copying items to a different package, click the package that you want to copy to, and then click the
appropriate tab for the item type.

IMPORTANT
You cannot copy a data flow to a package unless the package contains at least one Data Flow task.

7. Right-click and click Paste .


To copy connection managers
1. In SQL Server Data Tools (SSDT), open the Integration Services project that contains the package that you
want to work with.
2. In Solution Explorer, double-click the package.
3. In SSIS Designer, click the Control Flow , Data Flow , or Event Handler tab.
4. In the Connection Managers area, right-click the connection manager, and then click Copy . You can copy
only one connection manager at a time.
5. If you are copying items to a different package, click the package that you want to copy to and then click the
Control Flow , Data Flow , or Event Handler tab.
6. Right-click in the Connection Managers area and click Paste .
See Also
Control Flow
Data Flow
Integration Services (SSIS) Connections
Copy Project Items
Save Packages
11/2/2020 • 5 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
In SQL Server Data Tools (SSDT) you build packages by using SSIS Designer and save the packages to the file
system as XML files (.dtsx files). You can also save copies of the package XML file to the msdb database in SQL
Server or to the package store. The package store represents the folders in the file system location that the
Integration Services service manages.
If you save a package to the file system, you can later use the Integration Services service to import the package
to SQL Server or to the package store. For more information, see Integration Services Service (SSIS Service).
You can also use a command prompt utility, dtutil , to copy a package between the file system and msdb. For
more information, see dtutil Utility.

Save a package to the file system


1. In SQL Server Data Tools (SSDT), open the Integration Services project that contains the package you want
to save to a file.
2. In Solution Explorer, click the package you want to save.
3. On the File menu, click Save Selected Items .

NOTE
You can verify the path and file name where the package was saved in the Properties window.

Save a copy of a package


This section describes how to save a copy of a package to the file system, to the package store, or to the msdb
database in Microsoft SQL Server. When you specify a location to save the package copy, you can also update the
name of the package.
The package store can include both the msdb database and the folders in the file system, only msdb , or only
folders in the file system. In msdb , packages are saved to the sysssispackages table. This table includes a
folderid column that identifies the logical folder to which the package belongs. The logical folders provide a
useful way to group packages saved to msdb in the same way that folders in the file system provide a way to
group packages saved to the file system. Rows in the sysssispackagefolders table in msdb define the folders.
If msdb is not defined as part of the package store, you can continue to associate packages with existing logical
folders when you select SQL Server in the Package Path option.

NOTE
The package must be opened in SSIS Designer before you can save a copy of the package.

To save a copy of a package


1. In Solution Explorer, double-click the package of which you want to save a copy.
2. On the File menu, click Save Copy of <package file> As .
3. In the Save Copy of Package dialog box, select a package location in the Package location list. The
following options are available:
SQL Server
File System
SSIS Package Store
4. If the location is SQL Ser ver or SSIS Package Store , provide a server name.
5. If saving to SQL Server, specify the authentication type and, if using SQL Server Authentication, provide a
user name and password.
6. To specify the package path, either type the path or click the browse button (...) to specify the location of
the package. The default name of the package is Package. Optionally, update the package name to one that
suits your needs.
If you select SQL Ser ver as the Package Path option, the package path consists of logical folders in
msdb and the package name. For example, if the package DownloadMonthlyData is associated with the
Finance folder within the MSDB folder (the default name of the root logical folder in msdb ), the package
path for the package named DownloadMonthlyData is MSDB/Finance/DownloadMonthlyData
If you select SSIS Package Store as the Package Path option, the package path consists of the folder
that the Integration Services service manages. For example, if the package UpdateDeductions is located in
the HumanResources folder within the file system folder that the service manages, the package path is
/File System/HumanResources/UpdateDeductions; likewise, if the package PostResumes is associated with
the HumanResources folder within the MSDB folder, the package path is
MSDB/HumanResources/PostResumes.
If you select File System as the Package Path option, the package path is the location in the file system
and the file name. For example, if the package name is UpdateDemographics the package path is
C:\HumanResources\Quarterly\UpdateDemographics.dtsx.
7. Review the package protection level.
8. Optionally, click the browse button (...) by the Protection level box to change the protection level.
In the Package Protection Level dialog box, select a different protection level.
Click OK .
9. Click OK .

Save a package as a package template


This section describes how to designate and use custom packages as templates when you create new Integration
Services packages in SQL Server Data Tools (SSDT). By default, Integration Services uses a package template that
creates an empty package when you add a new package to an Integration Services project. You cannot replace
this default template, but you can add new templates.
You can designate multiple packages to use as templates. Before you can implement custom packages as
templates, you must create the packages.
When you create package using custom packages as templates, the new packages have the same name and GUID
as the template. To differentiate among packages you should update the value of the Name property and
generate a new GUID for the ID property. For more information, see Create Packages in SQL Server Data Tools
and Set Package Properties.
To designate a custom package as a package template
1. In the file system, locate the package that you want to use as template.
2. Copy the package to the DataTransformationItems folder. By default this folder is in C:\Program
Files\Microsoft Visual Studio
9.0\Common7\IDE\PrivateAssemblies\ProjectItems\DataTransformationProject.
3. Repeat steps 1 and 2 for each package that you want to use as a template.
To use a custom package as a package template
1. In SQL Server Data Tools (SSDT), open the Integration Services project in which you want to create a
package.
2. In Solution Explorer, right-click the project, point to Add , and then click New Item .
3. In the Add New Item -<project name> dialog box, click the package that you want to use as a template.
The list of templates includes the default package template named New SSIS Package. The package icon
identifies templates that can be used as package templates.
4. Click Add .
Reuse Control Flow across Packages by Using
Control Flow Package Parts
11/2/2020 • 5 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
Save a commonly used control flow task or container to a standalone part file - a ".dtsxp" file - and reuse it
multiple times in one or more packages by using control flow package parts. This reusability makes SSIS packages
easier to design and maintain.

Create a new control flow package part


To create a new control flow package part, in Solution Explorer, expand the Package Par ts folder. Right-click on
Control Flow and select New Control Flow Package Par t .

A new part file with the ".dtsxp" extension is created under the Package Par ts | Control Flow folder. At the same
time, a new item with the same name is also added to the SSIS toolbox. (The toolbox item is only visible while you
have a project that contains the part open in Visual Studio.)

Design a control flow package part


To open the package part editor, double-click on the part file in Solution Explorer. You can design the part just like
you design a package.
Control flow package parts have the following limitations.
A part can have only one top-level task or container. If you want to include multiple tasks or containers, put
them all in a single sequence container.
You can't run or debug a part directly in the designer.

Add an existing control flow package part to a package


You can reuse parts that are saved in the current Integration Services project or in a different project.
To reuse a part that's part of the current project, drag and drop the part from the toolbox.
To reuse a part that's part of a different project, use the Add Existing Control Flow Package Par t
command.
Drag and drop a control flow package part
To reuse a part in a project, simply drag and drop the part item from the toolbox just like any other task or
container. You can drag and drop the part into a package multiple times to reuse the logic in multiple locations in
the package. Use this method to reuse a part that is part of the current project.
When you save the package, SSIS designer checks whether there are any part instances in the package.
If the package contains part instances, the designer generates a new .dtsx.designer file which contains all
part-related information.
If the package does not use parts, the designer deletes any previously created .dtsx.designer file for the
package (that is, any .dtsx.designer file that has the same name as the package).

Add a copy of an existing control flow package part or a reference to an existing part
To add a copy of an existing part in the file system to a package, in Solution Explorer, expand the Package Par ts
folder. Right-click on Control Flow and select Add Existing Control Flow Package Par t .
Options
Package Par t path
Type the path to the part file, or click the browse button (...) and locate the part file to copy or to reference.
Add as a reference
If selected, the part is added to the Integration Services project as a reference. Select this option when you
when want to reference a single copy of a part file in multiple Integration Services projects.
If cleared, a copy of the part file is added to the project.

Configure a control flow package part


To configure control flow package parts after you've added them to the control flow of a package, use the Package
Par t Configuration dialog box.
To open the Package Part Configuration dialog box
1. To configure a part instance, double-click the part instance in the control flow. Or right-click on the part
instance and select Edit . The Package Par t Configuration dialog box opens.
2. Configure the properties and connection managers for the part instance.
Properties tab
Use the Proper ties tab of the Package Par t Configuration dialog box to specify the properties of the part.
The tree view hierarchy in the left pane lists all configurable properties of the part instance.
If cleared, the property is not configured in the part instance. The part instance uses the default value for
the property, which is defined in the control flow package part.
If selected, the value that you enter or select overrides the default value.
The table in the right pane lists the properties to configure.
Proper ty Path . The property path of the property.
Proper ty Type . The data type of the property.
Value . The configured value. This value overrides the default value.
Connection Managers tab
Use the Connection Managers tab of the Package Par t Configuration dialog box to specify the properties of
connection managers for the part instance.
The table in the left pane lists all the connection managers defined in the control flow part. Choose the connection
manager that you want to configure.
The list in the right pane lists the properties of the selected connection manager.
Set . Checked if the property is configured for the part instance.
Proper ty Name . The name of the property.
Value . The configured value. This value overrides the default value.

Delete a control flow part


To delete a part, in Solution Explorer, right-click the part, and then select Delete . Select OK to confirm the deletion
or select Cancel to keep the part.
If you delete a part from a project, it is deleted permanently from the file system and it cannot be restored.

NOTE
If you want to remove a part from an Integration Services project, but continue to use it in other projects, use the Exclude
from Project option instead of the Delete option.

Package parts are a design-time feature only


Package parts are purely a design-time feature. SSIS designer creates, opens, saves, and updates parts, and adds,
configures, or deletes part instances in a package. However, the SSIS runtime is not aware of the parts. Here is how
the designer achieves this separation.
The designer saves package part instances with their configured properties to a ".dtsx.designer" file.
When the designer saves the ".dtsx.designer" file, it also extracts the content from the parts referenced by
this file and replaces the part instances in the package with the content of the parts.
Finally all the content, which no longer includes part information, is saved back to the ".dtsx" package file.
This is the file that the SSIS runtime runs.
The diagram below demonstrates the relationship among parts (".dtsxp" files), SSIS designer, and the SSIS runtime.
Reuse of Package Objects
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
Frequently packages functionality that you want to reuse. For example, if you created a set of tasks, you might want
to reuse the items together as a group, or you might want to reuse a single item such as a connection manager that
you created in a different Integration Services project.

Copy and Paste


SQL Server Data Tools (SSDT) and SSIS Designer support copying and pasting package objects, which can include
control flow items, data flow items, and connection managers. You can copy and paste between projects and
between packages. If the solution contains multiple projects you can copy between projects, and the projects can be
of different types.
If a solution contains multiple packages, you can copy and paste between them. The packages can be in the same
or different Integration Services projects. However, package objects may have dependencies on other objects,
without which they are not valid. For example, an Execute SQL task uses a connection manager, which you must
copy as well to make the task work. Also, some package objects require that the package already contain a certain
object, and without this object you cannot successfully paste the copied objects into a package. For example, you
cannot paste a data flow into a package that does not have at least one Data Flow task.
You may find that you copy the same packages repeatedly. To avoid the copy process, you can designate these
packages as templates and use them when you create new packages.
When you copy a package object, Integration Services automatically assigns a new GUID to the ID property of the
new object and updates the Name property.
You cannot copy variables. If an object such as a task uses variables, then you must re-create the variables in the
destination package. In contrast, if you copy the entire package, then the variables in the package are also copied.

Related Tasks
Copy Package Objects
Copy Project Items
Save a Package as a Package Template
Delete Packages
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
In SQL Server Data Tools (SSDT), you can delete packages saved to the file system. If you delete a package, it is
deleted permanently and it cannot be restored to an Integration Services project.

NOTE
If you want to remove packages from an Integration Services project, but use them in other projects, then you should use
the Exclude From Project option instead of the Delete option.

To delete a package in Business Intelligence


1. In SQL Server Data Tools (SSDT), open the Integration Services project that contains the package you want to
delete.
2. In Solution Explorer, right-click the package, and then click Delete .
3. Click OK to confirm the deletion or click Cancel to keep the package.
dtutil Utility
11/2/2020 • 17 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
The dtutil command prompt utility is used to manage SQL Server Integration Services packages. The utility can
copy, move, delete, or verify the existence of a package. These actions can be performed on any SSIS package that
is stored in one of three locations: a Microsoft SQL Server database, the SSIS Package Store, and the file system. If
the utility accesses a package that is stored in msdb , the command prompt may require a user name and a
password. If the instance of SQL Server uses SQL Server Authentication, the command prompt requires both a
user name and a password. If the user name is missing, dtutil tries to log on to SQL Server using Windows
Authentication. The storage type of the package is identified by the /SQL , /FILE , and /DTS options.
The dtutil command prompt utility does not support the use of command files or redirection.
The dtutil command prompt utility includes the following features:
Remarks in the command prompt, which makes the command prompt action self-documenting and easier
to understand.
Overwrite protection, to prompt for a confirmation before overwriting an existing package when you are
copying or moving packages.
Console help, to provide information about the command options for dtutil .

NOTE
Many of the operations that are performed by dtutil can also be performed visually in SQL Server Management Studio
when you are connected to an instance of Integration Services. For more information, see Package Management (SSIS
Service).

The options can be typed in any order. The pipe ("|") character is the OR operator and is used to show possible
values. You must use one of the options that are delimited by the OR pipe.
All options must start with a slash (/) or a minus sign (-). However, do not include a space between the slash or
minus sign and the text for the option; otherwise, the command will fail.
Arguments must be strings that are either enclosed in quotation marks or contain no white space.
Double quotation marks within strings that are enclosed in quotation marks represent escaped single quotation
marks.
Options and arguments, except for passwords, are not case sensitive.
Installation Considerations on 64-bit Computers
On a 64-bit computer, Integration Services installs a 64-bit version of the dtexec utility (dtexec.exe) and the dtutil
utility (dtutil.exe). To install 32-bit versions of these Integration Services tools, you must select either Client Tools
or SQL Server Data Tools (SSDT) during setup.
By default, a 64-bit computer that has both the 64-bit and 32-bit versions of an Integration Services command
prompt utility installed will run the 32-bit version at the command prompt. The 32-bit version runs because the
directory path for the 32-bit version appears in the PATH environment variable before the directory path for the
64-bit version. (Typically, the 32-bit directory path is <drive>:\Program Files(x86)\Microsoft SQL
Server\130\DTS\Binn, while the 64-bit directory path is <drive>:\Program Files\Microsoft SQL
Server\130\DTS\Binn.)

NOTE
If you use SQL Server Agent to run the utility, SQL Server Agent automatically uses the 64-bit version of the utility. SQL
Server Agent uses the registry, not the PATH environment variable, to locate the correct executable for the utility.

To ensure that you run the 64-bit version of the utility at the command prompt, you can take one of the following
actions:
Open a Command Prompt window, change to the directory that contains the 64-bit version of the utility
(<drive>:\Program Files\Microsoft SQL Server\130\DTS\Binn), and then run the utility from that location.
At the command prompt, run the utility by entering the full path (<drive>:\Program Files\Microsoft SQL
Server\130\DTS\Binn) to the 64-bit version of the utility.
Permanently change the order of the paths in the PATH environment variable by placing the 64-bit path
(<drive>:\Program Files\Microsoft SQL Server\130\DTS\Binn) before the 32-bit path (<drive>:\ Program
Files(x86)\Microsoft SQL Server\130\DTS\Binn) in the variable.

Syntax
dtutil /option [value] [/option [value]]...

Parameters

O P T IO N DESC RIP T IO N

/? Displays the command prompt options.

/C[opy] location;destinationPathandPackageName Specifies a copy action on an SSIS package. Use of this


parameter requires that you first specify the location of the
package using the /FI , /SQ , or /DT option. Next, specify the
destination location destination package name. The
destinationPathandPackageName argument specifies where
the SSIS package is copied to. If the destination location is
SQL , the DestUser, DestPassword and DestServer arguments
must also be specified in the command.

When the Copy action encounters an existing package at the


destination, dtutil prompts the user to confirm package
deletion. The Y reply overwrites the package and the N reply
ends the program. When the command includes the Quiet
argument, no prompt appears and any existing package is
overwritten.

/Dec[rypt] password (Optional). Sets the decryption password that is used when
you load a package with password encryption.

/Del[ete] Deletes the package specified by the SQL, DTS or FILE option.
If dtutil cannot delete the package, the program ends.
O P T IO N DESC RIP T IO N

/DestP[assword] password Specifies the password that is used with the SQL option to
connect to a destination SQL Server instance using SQL
Server Authentication. An error is generated if
DESTPASSWORD is specified in a command line that does not
include the DTSUSER option.

Note: When possible, use Windows authentication..

/DestS[erver] server_instance Specifies the server name that is used with any action that
causes a destination to be saved to SQL Server. It is used to
identify a non-local or non-default server when saving an
SSIS package. It is an error to specify DESTSERVER in a
command line that does not have an action associated with
SQL Server. Actions such as SIGN SQL, COPY SQL, or MOVE
SQL options would be appropriate commands to combine
with this option.

A SQL Server instance name can be specified by adding a


backslash and the instance name to the server name.

/DestU[ser] username Specifies the user name that is used with the SIGN SQL,
COPY SQL, and MOVE SQL options to connect to a SQL
Server instance that uses SQL Server Authentication. It is an
error to specify DESTUSER in a command line that does not
include the SIGN SQL, COPY SQL, or MOVE SQL option.

/Dump process ID (Optional) Causes the specified process, either the dtexec
utility or the dtsDebugHost.exe process, to pause and
create the debug dump files, .mdmp and .tmp.

Note: To use the /Dump option, you must be assigned the


Debug Programs user right (SeDebugPrivilege).

To find the process ID for the process that you want to pause,
use Windows Task Manager.

By default, Integration Services stores the debug dump files


in the folder, <drive>:\Program Files\Microsoft SQL
Server\130\Shared\ErrorDumps.

For more information about the dtexec utility and the


dtsDebugHost.exe process, see dtexec Utility and Building,
Deploying, and Debugging Custom Objects.

For more information about debug dump files, see


Generating Dump Files for Package Execution.

Note: Debug dump files may contain sensitive information.


Use an access control list (ACL) to restrict access to the files,
or copy the files to a folder with restricted access.
O P T IO N DESC RIP T IO N

/DT[S] filespec Specifies that the SSIS package to be operated on is located


in the SSIS Package Store. The filespec argument must include
the folder path, starting with the root of the SSIS Package
Store. By default, the names of the root folders in the
configuration file are "MSDB" and "File System." Paths that
contain a space must be delimited by using double quotation
marks.

If the DT[S] option is specified on the same command line as


any of the following options, a DTEXEC_DTEXECERROR is
returned:

FILE

SQL

SOURCEUSER

SOURCEPASSWORD

SOURCESERVER

/En[crypt] {SQL | FILE}; Path;ProtectionLevel[;password] (Optional). Encrypts the loaded package with the specified
protection level and password, and saves it to the location
specified in Path. The ProtectionLevel determines whether a
password is required.

SQL - Path is the destination package name.

FILE - Path is the fully-qualified path and file name for the
package.

DTS - This option is not supported currently.

ProtectionLevel options:

Level 0: Strips sensitive information.

Level 1: Sensitive information is encrypted by using local user


credentials.

Level 2: Sensitive information is encrypted by using the


required password.

Level 3: Package is encrypted by using the required


password.

Level 4: Package is encrypted by using local user credentials.

Level 5 Package uses SQL Server storage encryption.

/Ex[ists] (Optional). Used to determine whether a package exists.


dtutil tries to locate the package specified by either the SQL,
DTS or FILE options. If dtutil cannot locate the package
specified, a DTEXEC_DTEXECERROR is returned.

/FC[reate] {SQL | DTS};ParentFolderPath;NewFolderName (Optional). Create a new folder that has the name that you
specified in NewFolderName. The location of the new folder is
indicated by the ParentFolderPath.
O P T IO N DESC RIP T IO N

/FDe[lete] {SQL | DTS}[;ParentFolderPath;FolderName] (Optional). Deletes from SQL Server or SSIS the folder that
was specified by the name in FolderName. The location of the
folder to delete is indicated by the ParentFolderPath.

/FDi[rectory] {SQL | DTS};FolderPath[;S] (Optional). Lists the contents, both folders and packages, in a
folder on SSIS or SQL Server. The optional FolderPath
parameter specifies the folder that you want to view the
content of. The optional S parameter specifies that you want
to view a listing of the contents of the subfolders for the
folder specified in FolderPath.

/FE[xists ] {SQL | DTS};FolderPath (Optional). Verifies if the specified folder exists on SSIS or SQL
Server. The FolderPath parameter is the path and name of the
folder to verify.

/Fi[le] filespec This option specifies that the SSIS package to be operated on
is located in the file system. The filespec value can be
provided as either a Universal Naming Convention (UNC)
path or local path.

If the File option is specified on the same command line as


any of the following options, a DTEXEC_DTEXECERROR is
returned:

DTS

SQL

SOURCEUSER

SOURCEPASSWORD

SOURCESERVER

/FR[ename] {SQL | DTS} [;ParentFolderPath; (Optional). Renames a folder on the SSIS or SQL Server. The
OldFolderName;NewFolderName] ParentFolderPath is the location of the folder to rename. The
OldFolderName is the current name of the folder, and
NewFolderName is the new name to give the folder.

/H[elp] option Displays text extensive help that shows the dtutil options
and describes their use. The option argument is optional. If
the argument is included, the Help text includes detailed
information about the specified option. The following example
displays help for all options:

dtutil /H

The following two examples show how to use the /H option


to display extended help for a specific option, the /Q [uiet]
option, in this example:

dtutil /Help Quiet

dtutil /H Q
O P T IO N DESC RIP T IO N

/I[DRegenerate] Creates a new GUID for the package and updates the
package ID property. When a package is copied, the package
ID remains the same; therefore, the log files contain the same
GUID for both packages. This action creates a new GUID for
the newly-copied package to distinguish it from the original.

/M[ove] {SQL | File | DTS}; pathandname Specifies a move action on an SSIS package. To use this
parameter, first specify the location of the package using the
/FI , /SQ , or /DT option. Next, specify the Move action. This
action requires two arguments, which are separated by a
semicolon:

The destination argument can specify SQL, FILE, or DTS. A


SQL destination can include the DESTUSER, DESTPASSWORD,
and DESTSERVER options.

The pathandname argument specifies the package location:


SQL uses the package path and package name, FILE uses a
UNC or local path, and DTS uses a location that is relative to
the root of the SSIS Package Store. When the destination is
FILE or DTS, the path argument does not include the file
name. Instead, it uses the package name at the specified
location as the file name.

When the MOVE action encounters an existing package at


the destination, dtutil prompts you to confirm that you want
to overwrite the package. The Y reply overwrites the package
and the N reply ends the program. When the command
includes the QUIET option, no prompt appears and any
existing package is overwritten.

/Q[uiet] Stops the confirmation prompts that can appear when a


command including the COPY , MOVE , or SIGN option is
executed. These prompts appear if a package with the same
name as the specified package already exists at the
destination computer or if the specified package is already
signed.

/R[emark] text Adds a comment to the command line. The comment


argument is optional. If the comment text includes spaces,
the text must be enclosed in quotation marks. You can
include multiple REM options in a command line.
O P T IO N DESC RIP T IO N

/Si[gn] {SQL | File | DTS}; path; hash Signs an SSIS package. This action uses three required
arguments, which are separated by semicolons; destination,
path, and hash:

The destination argument can specify SQL, FILE, or DTS. A


SQL destination can include the DESTUSER, DESTPASSWORD
and DESTSERVER options.

The path argument specifies the location of the package to


take action on.

The hash argument specifies a certificate identifier expressed


as a hexadecimal string of varying length.

For more information, see Identify the Source of Packages


with Digital Signatures.

** Impor tant ** When configured to check the signature of


the package, Integration Services only checks whether the
digital signature is present, is valid, and is from a trusted
source. Integration Services does not check whether the
package has been changed.

/SourceP[assword] password Specifies the password that is used with the SQL and
SOURCEUSER options to enable the retrieval of an SSIS
package that is stored in a database on a SQL Server instance
that uses SQL Server Authentication. It is an error to specify
SOURCEPASSWORD in a command line that does not include
the SOURCEUSER option.

Note: When possible, use Windows authentication.

/SourceS[erver] server_instance Specifies the server name that is used with the SQL option to
enable the retrieval of an SSIS package that is stored in SQL
Server. It is an error to specify SOURCESERVER in a command
line that does not include the SIGN SQL, COPY SQL, or
MOVE SQL option.

A SQL Server instance name can be specified by adding a


backslash and the instance name to the server name.

/SourceU[ser] username Specifies the user name that is used with the SOURCESERVER
option to enable the retrieval of an SSIS package stored in
SQL Server using SQL Server Authentication. It is an error to
specify SOURCEUSER in a command line that does not
include the SIGN SQL, COPY SQL, or MOVE SQL option.

Note: When possible, use Windows authentication.


O P T IO N DESC RIP T IO N

/SQ[L] package_path Specifies the location of an SSIS package. This option indicates
that the package is stored in the msdb database. The
package_path argument specifies the path and name of the
SSIS package. Folder names are terminated with back slashes.

If the SQL option is specified on the same command line as


any of the following options, a DTEXEC_DTEXECERROR is
returned:

DTS

FILE

The SQL option may be accompanied by zero or one instance


of the following options:

SOURCEUSER

SOURCEPASSWORD

SOURCESERVER

If SOURCEUSERNAME is not included, Windows


Authentication is used to access the package.
SOURCEPASSWORD is allowed only if SOURCEUSER is
present. If SOURCEPASSWORD is not included, a blank
password is used.

** Impor tant ** Do not use a blank password. Use a strong


password.

dtutil Exit Codes


dtutil sets an exit code that alerts you when syntax errors are detected, incorrect arguments are used, or invalid
combinations of options are specified. Otherwise, the utility reports "The operation completed successfully".The
following table lists the values that the dtutil utility can set when exiting.

VA L UE DESC RIP T IO N

0 The utility executed successfully.

1 The utility failed.

4 The utility cannot locate the requested package.

5 The utility cannot load the requested package

6 The utility cannot resolve the command line because it


contains either syntactic or semantic errors.

Remarks
You cannot use command files or redirection with dtutil .
The order of the options within the command line is not significant.

Examples
The following examples detail typical command line usage scenarios.
Copy Examples
To copy a package that is stored in the msdb database on a local instance of SQL Server using Windows
Authentication to the SSIS Package Store, use the following syntax:

dtutil /SQL srcPackage /COPY DTS;destFolder\destPackage

To copy a package from a location on the File system to another location and give the copy a different name, use
the following syntax:

dtutil /FILE c:\myPackages\mypackage.dtsx /COPY FILE;c:\myTestPackages\mynewpackage.dtsx

To copy a package on the local file system to an instance of SQL Server hosted on another computer, use the
following syntax:

dtutil /FILE c:\sourcepkg.dtsx /DestServer <servername> /COPY SQL;destpkgname

Because the /DestU[ser] and /DestP[assword] options were not used, Windows Authentication is assumed.
To create a new ID for a package after it is copied, use the following syntax:

dtutil /I /FILE copiedpkg.dtsx

To create a new ID for all the packages in a specific folder, use the following syntax:

for %%f in (C:\test\SSISPackages\*.dtsx) do dtutil.exe /I /FILE %%f

Use a single percent sign (%) when typing the command at the command prompt. Use a double percent sign
(%%) if the command is used inside a batch file.
Delete Examples
To delete a package that is stored in the msdb database on an instance of SQL Server that uses Windows
Authentication, use the following syntax:

dtutil /SQL delPackage /DELETE

To delete a package that is stored in the msdb database on an instance of SQL Server that uses SQL Server
Authentication, use the following syntax:

dtutil /SQL delPackage /SOURCEUSER srcUserName /SOURCEPASSWORD #8nGs*w7F /DELETE


NOTE
To delete a package from a named server, include the SOURCESERVER option and its argument. You can only specify a
server by using the SQL option.

To delete a package that is stored in the SSIS Package Store, use the following syntax:

dtutil /DTS delPackage.dtsx /DELETE

To delete a package that is stored in the file system, use the following syntax:

dtutil /FILE c:\delPackage.dtsx /DELETE

Exists Examples
To determine whether a package exists in the msdb database on a local instance of SQL Server that uses
Windows Authentication, use the following syntax:

dtutil /SQL srcPackage /EXISTS

To determine whether a package exists in the msdb database on a local instance of SQL Server that uses SQL
Server Authentication, use the following syntax:

dtutil /SQL srcPackage /SOURCEUSER srcUserName /SOURCEPASSWORD *hY$d56b /EXISTS

NOTE
To determine whether a package exists on a named server, include the SOURCESERVER option and its argument. You can
only specify a server by using the SQL option.

To determine whether a package exists in the local package store, use the following syntax:

dtutil /DTS srcPackage.dtsx /EXISTS

To determine whether a package exists in the local file system, use the following syntax:

dtutil /FILE c:\srcPackage.dtsx /EXISTS

Move Examples
To move a package that is stored in the SSIS Package Store to the msdb database on a local instance of SQL
Server that uses Windows Authentication, use the following syntax:

dtutil /DTS srcPackage.dtsx /MOVE SQL;destPackage

To move a package that is stored in the msdb database on a local instance of SQL Server that uses SQL Server
Authentication to the msdb database on another local instance of SQL Server that uses SQL Server
Authentication, use the following syntax:
dtutil /SQL srcPackage /SOURCEUSER srcUserName /SOURCEPASSWORD $Hj45jhd@X /MOVE SQL;destPackage /DESTUSER
destUserName /DESTPASSWORD !38dsFH@v

NOTE
To move a package from one named server to another, include the SOURCES and the DESTS option and their arguments.
You can only specify servers by using the SQL option.

To move a package that is stored in the SSIS Package Store, use the following syntax:

dtutil /DTS srcPackage.dtsx /MOVE DTS;destPackage.dtsx

To move a package that is stored in the file system, use the following syntax:

dtutil /FILE c:\srcPackage.dtsx /MOVE FILE;c:\destPackage.dtsx

Sign Examples
To sign a package that is stored in a SQL Server database on a local instance of SQL Server that uses Windows
Authentication, use the following syntax:

dtutil /FILE srcPackage.dtsx /SIGN FILE;destpkg.dtsx;1767832648918a9d989fdac9819873a91f919

To locate information about your certificate, use Cer tMgr . The hash code can be viewed in the Cer tMgr utility by
selecting the certificate, and then clicking View to view the properties. The Details tab provides more
information about the certificate. The Thumbprint property is used as the hash value, with spaces removed.

NOTE
The hash used in this example is not a real hash.

For more information, see the CertMgr section in Signing and Checking Code with Authenticode.
Encrypt Examples
The following sample encrypts the file-based PackageToEncrypt.dtsx to the file-based EncryptedPackage.dts using
full package encryption, with a password. The password that is used for the encryption is EncPswd.

dtutil /FILE PackageToEncrypt.dtsx /ENCRYPT file;EncryptedPackage.dtsx;3;EncPswd

See Also
Run Integration Services (SSIS) Packages
SSIS Package Upgrade Wizard F1 Help
11/2/2020 • 8 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
Use the SSIS Package Upgrade Wizard to upgrade packages created by earlier versions of SQL Server to the
package format for the current release of SQL Server Integration Services.
To run the SSIS Package Upgrade Wizard
Upgrade Integration Services Packages Using the SSIS Package Upgrade Wizard

SSIS Upgrade Wizard


Options
Do not show this page again.
Skip the Welcome page the next time that you open the wizard.

Select Source Location page


Use the Select Source Location page to specify the source from which to upgrade packages.

NOTE
This page is only available when you run the SSIS Package Upgrade Wizard from SQL Server Management Studio or at the
command prompt.

Static Options
Package source
Select the storage location that contains the packages to be upgraded. This option has the values listed in the
following table.

VA L UE DESC RIP T IO N

File System Indicates that the packages to be upgraded are in a folder on


the local computer.

To have the wizard back up the original packages before


upgrading those packages, the original packages must be
stored in the file system. For more information, see How To
Topic.

SSIS Package Store Indicates that the packages to be upgraded are in the package
store. The package store consists of the set of file system
folders that the Integration Services service manages. For
more information, see Package Management (SSIS Service).

Selecting this value displays the corresponding Package


source dynamic options.
VA L UE DESC RIP T IO N

Microsoft SQL Ser ver Indicates the packages to be upgraded are from an existing
instance of SQL Server.

Selecting this value displays the corresponding Package


source dynamic options.

Folder
Type the name of a folder that contains the packages you want to upgrade or click Browse and locate the folder.
Browse
Browse to locate the folder that contains the packages you want to upgrade.
Package Source Dynamic Options
Package source = SSIS Package Store
Ser ver
Type the name of the server that has the packages to be upgraded, or select this server in the list.
Package source = Microsoft SQL Server
Ser ver
Type the name of the server that has the packages to be upgraded, or select this server from the list.
Use Windows authentication
Select to use Windows Authentication to connect to the server.
Use SQL Ser ver authentication
Select to use SQL Server Authentication to connect to the server. If you use SQL Server Authentication, you must
provide a user name and password.
User name
Type the user name that SQL Server Authentication will use to connect to the server.
Password
Type the password that SQL Server Authentication will use to connect to the server.

Select Destination Location page


Use the Select Destination Location page to specify the destination to which to save the upgraded packages.

NOTE
This page is only available when you run the SSIS Package Upgrade Wizard from SQL Server Management Studio or at the
command prompt.

Static Options
Save to source location
Save the upgraded packages to the same location as specified on the Select Source Location page of the wizard.
If the original packages are stored in the file system and you want the wizard to back up those packages, select the
Save to source location option. For more information, see Upgrade Integration Services Packages Using the
SSIS Package Upgrade Wizard.
Select new destination location
Save the upgraded packages to the destination location that is specified on this page.
Package source
Specify where the upgrade packages are to be stored. This option has the values listed in the following table.

VA L UE DESC RIP T IO N

File System Indicates that the upgraded packages are to be saved to a


folder on the local computer.

SSIS Package Store Indicates that the upgraded packages are to be saved to the
Integration Services package store. The package store consists
of the set of file system folders that the Integration Services
service manages. For more information, see Package
Management (SSIS Service).

Selecting this value displays the corresponding Package


source dynamics options.

Microsoft SQL Ser ver Indicates that the upgraded packages are to be saved to an
existing instance of SQL Server.

Selecting this value displays the corresponding dynamic


Package source dynamic options.

Folder
Type the name of a folder to which the upgraded packages will be saved, or click Browse and locate the folder.
Browse
Browse to locate the folder to which the upgraded packages will be saved.
Package Source Dynamic Options
Package source = SSIS Package Store
Ser ver
Type the name of the server to which the upgrade packages will be saved, or select a server in the list.
Package source = Microsoft SQL Server
Ser ver
Type the name of the server to which the upgrade packages will be saved, or select this server in the list.
Use Windows authentication
Select to use Windows Authentication to connect to the server.
Use SQL Ser ver authentication
Select to use SQL Server Authentication to connect to the server. If you use SQL Server Authentication, you must
provide a user name and password.
User name
Type the user name to be used when using SQL Server Authentication to connect to the server.
Password
Type the password to be used when using SQL Server Authentication to connect to the server.

Select Package Management Options page


Use the Select Package Management Options page to specify options for upgrading packages.
To run the SSIS Package Upgrade Wizard
Upgrade Integration Services Packages Using the SSIS Package Upgrade Wizard
Options
Update connection strings to use new provider names
Update the connection strings to use the names for the following providers for the current release of Integration
Services:
OLE DB Provider for Analysis Services
SQL Server Native Client
The SSIS Package Upgrade Wizard updates only connection strings that are stored in connection managers. The
wizard does not update connection strings that are constructed dynamically by using the Integration Services
expression language, or by using code in a Script task.
Validate upgrade packages
Validate the upgrade packages and save only those upgrade packages that pass validation.
If you do not select this option, the wizard will not validate upgrade packages. Therefore, the wizard will save all
upgrade packages, regardless of whether the packages are valid or not. The wizard saves upgrade packages to the
destination that is specified on the SelectDestination Location page of the wizard.
Validation adds time to the upgrade process. We recommend that you do not select this option for large packages
that are likely to be upgraded successfully.
Create new package IDs
Create new package IDs for the upgrade packages.
Continue upgrade process when a package upgrade fails
Specify that when a package cannot be upgraded, the SSIS Package Upgrade Wizard continues to upgrade the
remaining packages.
Package name conflicts
Specify how the wizard should handle packages that have the same name. This option has the values listed in the
following table.
Over write existing package files
Replaces the existing package with the upgrade package of the same name.
Add numeric suffixes to upgrade package names
Adds a numeric suffix to the name of the upgrade package.
Do not upgrade packages
Stops the packages from being upgraded and displays an error when you complete the wizard.
These options are not available when you select the Save to source location option on the Select Destination
Location page of the wizard.
Ignore Configurations
Does not load package configurations during the package upgrade. Selecting this option reduces the time required
to upgrade the package.
Backup original packages
Have the wizard back up the original packages to an SSISBackupFolder folder. The wizard creates the
SSISBackupFolder folder as a subfolder to the folder that contains the original packages and the upgraded
packages.

NOTE
This option is available only when you specify that the original packages and the upgraded packages are stored in the file
system and in the same folder.
Select Packages page
Use the Select Packages page to select the packages to upgrade. This page lists the packages that are stored in
the location that was specified on the Select Source Location page of the wizard.
Options
Existing package name
Select one or more packages to upgrade.
Upgrade package name
Provide the destination package name, or use the default name that the wizard provides.

NOTE
You can also change the destination package name after upgrading the package. In SQL Server Data Tools (SSDT) or SQL
Server Management Studio, open the upgraded package and change the package name.

Password
Specify the password that is used to decrypt the selected upgrade packages.
Apply to selection
Apply the specified password to decrypt the selected upgrade packages.

Complete the Wizard page


Use the Complete the Wizard page to review and confirm the package upgrade options that you have selected.
This is the last wizard page from which you can go back and change options for this session of the wizard.
Options
Summar y of options
Review the upgrade options that you have selected in the wizard. To change any options, click Back to return to
previous wizard pages.

Upgrading the Packages page


Use the Upgrading the Packages page to view the progress of package upgrade and to interrupt the upgrade
process. The SSIS Package Upgrade Wizard upgrades the selected packages one by one.
Options
Message pane
Displays progress messages and summary information during the upgrade process.
Action
View the actions in the upgrade.
Status
View the result of each action.
Message
View the error messages that each action generates.
Stop
Stop the package upgrade.
Repor t
Select what you want to do with the report that contains the results of the package upgrade:
View the report online.
Save the report to a file.
Copy the report to the Clipboard
Send the report as an e-mail message.

View upgraded packages


View upgraded packages that were saved to a SQL Server database or to the package store
In Management Studio, in Object Explorer, connect to the local instance of Integration Services, and then expand the
Stored Packages node to see the packages that were upgraded.
View upgraded packages that were upgraded from SQL Server Data Tools
In SQL Server Data Tools (SSDT), in Solution Explorer, open the Integration Services project, and then expand the
SSIS Packages node to see the upgraded packages.

See Also
Upgrade Integration Services Packages
Integration Services (SSIS) Package and Project
Parameters
11/2/2020 • 11 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
Integration Services (SSIS) parameters allow you to assign values to properties within packages at the time of
package execution. You can create project parameters at the project level and package parameters at the package
level. Project parameters are used to supply any external input the project receives to one or more packages in the
project. Package parameters allow you to modify package execution without having to edit and redeploy the
package.
In SQL Server Data Tools you create, modify, or delete project parameters by using the Project.params window.
You create, modify, and delete package parameters by using the Parameters tab in the SSIS Designer. You
associate a new or an existing parameter with a task property by using the Parameterize dialog box. For more
about using the Project.params window and the Parameters tab, see . For more information about the
Create Parameters

Parameterize dialog box, see .


Parameterize Dialog Box

Parameters and Package Deployment Model


In general, if you are deploying a package using the package deployment model, you should use configurations
instead of parameters.
When you deploy a package that contains parameters using the package deployment model and then execute the
package, the parameters are not called during execution. If the package contains package parameters and
expressions within the package use the parameters, the resulting values are applied at runtime. If the package
contains project parameters, the package execution may fail.

Parameters and Project Deployment Model


When you deploy a project to the Integration Services (SSIS) server, you use views, stored procedures, and the
SQL Server Management Studio UI to manage project and package parameters. For more information, see the
following topics.
Views (Integration Services Catalog)
Stored Procedures (Integration Services Catalog)
Configure Dialog Box
Execute Package Dialog Box
Parameter Values
You can assign up to three different types of values to a parameter. When a package execution is started, a single
value is used for the parameter, and the parameter is resolved to its final literal value.
The following table lists the types of values.

VA L UE N A M E DESC RIP T IO N T Y P E O F VA L UE
VA L UE N A M E DESC RIP T IO N T Y P E O F VA L UE

Execution Value The value that is assigned to a specific Literal


instance of package execution. This
assignment overrides all other values,
but applies to only a single instance of
package execution.

Server Value The value assigned to the parameter Literal or Environment Variable
within the scope of the project, after Reference
the project is deployed to the
Integration Services server. This value
overrides the design default.

Design Value The value assigned to the parameter Literal


when the project is created or edited in
SQL Server Data Tools. This value
persists with the project.

You can use a single parameter to assign a value to multiple package properties. A single package property can be
assigned a value only from a single parameter.
Executions and Parameter Values
The execution is an object that represents a single instance of package execution. When you create an execution,
you specify all of the details necessary to run a package such as execution parameter values. You can also modify
the parameters values for existing executions.
When you explicitly set an execution parameter value, the value is applicable only to that particular instance of
execution. The execution value is used instead of a server value or a design value. If you do not explicitly set an
execution value, and a server value has been specified, the server value is used.
When a parameter is marked as required, a server value or execution value must be specified for that parameter.
Otherwise, the corresponding package does not execute. Although the parameter has a default value at design
time, it will never be used once the project is deployed.
Environment Variables
If a parameter references an environment variable, the literal value from that variable is resolved through the
specified environment reference and applied to the parameter. The final literal parameter value that is used for
package execution is referred to as the execution parameter value. You specify the environment reference for an
execution by using the Execute dialog box
If a project parameter references an environment variable and the literal value from the variable cannot be
resolved at execution, the design value is used. The server value is not used.
To view the environment variables that are assigned to parameter values, query the catalog.object_parameters
view. For more information, see catalog.object_parameters (SSISDB Database).
Determining Execution Parameter Values
The following Transact-SQL views and stored procedure can be used to display and set parameter values.
catalog.execution_parameter_values (SSISDB Database)(view)
Shows the actual parameter values in a specific execution.
catalog.get_parameter_values (SSISDB Database) (stored procedure)
Resolves and shows the actual values for the specified package and environment reference.
catalog.object_parameters (SSISDB Database) (view)
Displays the parameters and properties for all packages and projects in the Integration Services catalog, including
the design default and server default values.
catalog.set_execution_parameter_value (SSISDB Database)
Sets the value of a parameter for an instance of execution in the Integration Services catalog.
You can also use the Execute Package dialog box in SQL Server Data Tools (SSDT) modify the parameter value.
For more information, see Execute Package Dialog Box.
You can also use the dtexec /Parameter option to modify a parameter value. For more information, see dtexec
Utility.
Parameter Validation
If parameter values cannot be resolved, the corresponding package execution will fail. To help avoid failures, you
can validate projects and packages by using the Validate dialog box in SQL Server Data Tools (SSDT). Validation
allows you to confirm that all parameters have the necessary values or can resolve the necessary values with
specific environment references. Validation also checks for other common package issues.
For more information, see Validate Dialog Box.
Parameter Example
This example describes a parameter named pkgOptions that is used to specify options for the package in which it
resides.
During design time, when the parameter was created in SQL Server Data Tools, a default value of 1 was assigned
to the parameter. This default value is referred to as the design default. If the project was deployed to the SSISDB
catalog and no other values were assigned to this parameter, the package property corresponding to the
pkgOptions parameter would be assigned the value of 1 during package execution. The design default persists
with the project throughout its life cycle.
While preparing a specific instance of package execution, a value of 5 is assigned to the pkgOptions parameter.
This value is referred to as the execution value because it applies to the parameter only for that particular instance
of execution. When execution starts, the package property corresponding to the pkgOptions parameter is
assigned the value of 5.

Create parameters
You use SQL Server Data Tools (SSDT) to create project parameters and package parameters. The following
procedures provide step-by-step instructions for creating package/project parameters.

NOTE: If you are converting a project that you created using an earlier version of Integration Services to the
project deployment model, you can use the Integration Ser vices Project Conversion Wizard to create
parameters based on configurations. For more information, see Deploy Integration Services (SSIS) Projects
and Packages.

Create package parameters


1. Open the package in SQL Server Data Tools, and then click the Parameters tab in the SSIS Designer.

2. Click the Add Parameter button on the toolbar.


3. Enter values for the Name , Data Type , Value , Sensitive , and Required properties in the list itself or in
the Proper ties window. The following table describes these properties.

P RO P ERT Y DESC RIP T IO N

Name The name of the parameter.

Data type The data type of the parameter.

Default value The default value for the parameter assigned at design
time. This is also known as the design default.

Sensitive Sensitive parameter values are encrypted in the catalog


and appear as a NULL value when viewed with Transact-
SQL or SQL Server Management Studio.

Required Requires that a value, other than the design default, is


specified before the package can execute.

Description For maintainability, the description of the parameter. In


SQL Server Data Tools (SSDT), set the parameter
description in the Visual Studio Properties window when
the parameter is selected in the applicable parameters
window.

NOTE: When you deploy a project to the catalog, several more properties become associated with the
project. To see all properties for all parameters in the catalog, use the catalog.object_parameters
(SSISDB Database) view.

4. Save the project to save changes to parameters. Parameter values are stored in the project file.

WARNING!! You can in-place edit in the list or use the Proper ties window to modify the values of
parameter properties. You can delete a parameter by using the Delete (X) toolbar button. Using the
last toolbar button, you can specify a value for a parameter that is used only when you execute the
package in SQL Server Data Tools.

NOTE: If you re-open the package file without opening the project in SQL Server Data Tools, the
Parameters tab will be empty and disabled.

Create project parameters


1. Open the project in SQL Server Data Tools.
2. Right-click Project.params in Solution Explorer, and then click Open (OR) double-click Project.params to
open it.
3. Click the Add Parameter button on the toolbar.

4. Enter values for the Name , Data Type , Value , Sensitive , and Required properties.

P RO P ERT Y DESC RIP T IO N

Name The name of the parameter.

Data type The data type of the parameter.

Default value The default value for the parameter assigned at design
time. This is also known as the design default.

Sensitive Sensitive parameter values are encrypted in the catalog


and appear as a NULL value when viewed with Transact-
SQL or SQL Server Management Studio.

Required Requires that a value, other than the design default, is


specified before the package can execute.

Description For maintainability, the description of the parameter. In


SQL Server Data Tools, set the parameter description in
the Visual Studio Properties window when the parameter
is selected in the applicable parameters window.

5. Save the project to save changes to parameters. Parameter values are stored in configurations in the project
file. Save the project file to commit to disk any changes in the parameter values.

WARNING!!! You can in-place edit in the list or use the Proper ties window to modify the values of
parameter properties. You can delete a parameter by using the Delete (X) toolbar button. Using the
last toolbar button to open the Manage Parameter Values dialog box, you can specify a value for a
parameter that is used only when you execute the package in SQL Server Data Tools.

Parameterize Dialog Box


The Parameterize dialog box lets you associate a new or an existing parameter with a property of a task. You
open the dialog box by right-clicking a task or the Control Flow tab in SSIS Designer and then by clicking
Parameterize . The following list describes UI elements in the dialog box. For more information about parameters,
see .
I ntegration Services ( SSI S) Parameters

Options
Proper ty
Select the property of the task that you want to associate with a parameter. This list is populated with all the
properties that can be parameterized.
Use existing parameter
Select this option to associate the property of task with an existing parameter and then select the parameter from
drop-down list.
Do not use parameter
Select this option to remove a reference to a parameter. The parameter is not deleted.
Create new parameter
Select this option to create a new parameter that you want to associate with the property of the task.
Name
Specify the name of the parameter you want to create.
Description
Specify the description for parameter.
Value
Specify the default value for the parameter. This is also known as the design default, which can be overridden later
at the deployment time.
Scope
Specify the scope of the parameter by selecting either Project or Package option. Project parameters are used to
supply any external input the project receives to one or more packages in the project. Package parameters allow
you to modify package execution without having to edit and redeploy the package.
Sensitive
Specify whether the parameter is a sensitive by checking or clearing the check box. Sensitive parameter values are
encrypted in the catalog and appear as a NULL value when viewed with Transact-SQL or SQL Server Management
Studio.
Required
Specify whether the parameter requires that a value, other than the design default, is specified before the package
can execute.

Set parameter values after the project is deployed


The Deployment Wizard allows you to set server default parameter values when you deploy your project to the
catalog. After your project is in the catalog, you can use SQL Server Management Studio (SSMS) Object Explorer
or Transact-SQL to set server default values.
Set server defaults with SSMS Object Explorer
1. Select and right-click the project under the Integration Ser vices node.
2. Click Proper ties to open the Project Proper ties dialog window.
3. Open the parameters page by clicking Parameters under Select a page .
4. Select the desired parameter in the Parameters list. Note: The Container column helps distinguish project
parameters from package parameters.
5. In the Value column, specify the desired server default parameter value.
Set server defaults with Transact-SQL
To set server defaults with Transact-SQL, use the catalog.set_object_parameter_value (SSISDB Database) stored
procedure. To view current server defaults, query the catalog.object_parameters (SSISDB Database) view. To clear a
server default value, use the catalog.clear_object_parameter_value (SSISDB Database) stored procedure.

Related Content
Blog entry, SSIS Quick Tip: Required Parameters, on mattmasson.com.
Integration Services (SSIS) Connections
11/2/2020 • 16 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
Microsoft SQL Server Integration Services packages use connections to perform different tasks and to
implement Integration Services features:
Connecting to source and destination data stores such as text, XML, Excel workbooks, and relational
databases to extract and load data.
Connecting to relational databases that contain reference data to perform exact or fuzzy lookups.
Connecting to relational databases to run SQL statements such as SELECT, DELETE, and INSERT
commands and also stored procedures.
Connecting to SQL Server to perform maintenance and transfer tasks such as backing up databases
and transferring logins.
Writing log entries in text and XML files and SQL Server tables and package configurations to SQL
Server tables.
Connecting to SQL Server to create temporary work tables that some transformations require to do
their work.
Connecting to Analysis Services projects and databases to access data mining models, process cubes
and dimensions, and run DDL code.
Specifying existing or creating new files and folders to use with Foreach Loop enumerators and tasks.
Connecting to message queues and to Windows Management Instrumentation (WMI), SQL Server
Management Objects (SMO), Web, and mail servers.
To make these connections, Integration Services uses connection managers, as described in the next section.

Connection Managers
Integration Services uses the connection manager as a logical representation of a connection. At design time,
you set the properties of a connection manager to describe the physical connection that Integration Services
creates when the package runs. For example, a connection manager includes the ConnectionString
property that you set at design time; at run time, a physical connection is created using the value in the
connection string property.
A package can use multiple instances of a connection manager type, and you can set the properties on each
instance. At run time, each instance of a connection manager type creates a connection that has different
attributes.
SQL Server Integration Services provides different types of connection managers that enable packages to
connect to a variety of data sources and servers:
There are built-in connection managers that Setup installs when you install Integration Services.
There are connection managers that are available for download from the Microsoft website.
You can create your own custom connection manager if the existing connection managers do not meet
your needs.
Package level and project level connection managers
A connection manager can be created at the package level or at the project level. The connection manager
created at the project level is available all the packages in the project. Whereas, connection manager created
at the package level is available to that specific package.
You use connection managers that are created at the project level in place of data sources, to share
connections to sources. To add a connection manager at the project level, the Integration Services project
must use the project deployment model. When a project is configured to use this model, the Connection
Managers folder appears in Solution Explorer , and the Data Sources folder is removed from Solution
Explorer .

NOTE
If you want to use data sources in your package, you need to convert the project to the package deployment model.
For more information about the two models, and about converting a project to the project deployment model, see
Deploy Integration Services (SSIS) Projects and Packages.

Built-in Connection Managers


The following table lists the connection manager types that SQL Server Integration Services provides.

TYPE DESC RIP T IO N TO P IC

ADO Connects to ActiveX Data Objects ADO Connection Manager


(ADO) objects.

ADO.NET Connects to a data source by using a ADO.NET Connection Manager


.NET provider.

CACHE Reads data from the data flow or Cache Connection Manager
from a cache file (.caw), and can save
data to the cache file.

DQS Connects to a Data Quality Services DQS Cleansing Connection Manager


server and a Data Quality Services
database on the server.

EXCEL Connects to an Excel workbook file. Excel Connection Manager

FILE Connects to a file or a folder. File Connection Manager

FLATFILE Connect to data in a single flat file. Flat File Connection Manager

FTP Connect to an FTP server. FTP Connection Manager

HTTP Connects to a webserver. HTTP Connection Manager

MSMQ Connects to a message queue. MSMQ Connection Manager

MSOLAP100 Connects to an instance of SQL Analysis Services Connection


Server Analysis Services or an Manager
Analysis Services project.

MULTIFILE Connects to multiple files and folders. Multiple Files Connection Manager
TYPE DESC RIP T IO N TO P IC

MULTIFLATFILE Connects to multiple data files and Multiple Flat Files Connection
folders. Manager

OLEDB Connects to a data source by using OLE DB Connection Manager


an OLE DB provider.

ODBC Connects to a data source by using ODBC Connection Manager


ODBC.

SMOServer Connects to a SQL Server SMO Connection Manager


Management Objects (SMO) server.

SMTP Connects to an SMTP mail server. SMTP Connection Manager

SQLMOBILE Connects to a SQL Server Compact SQL Server Compact Edition


database. Connection Manager

WMI Connects to a server and specifies the WMI Connection Manager


scope of Windows Management
Instrumentation (WMI) management
on the server.

Connection Managers available for download


The following table lists additional types of connection manager that you can download from the Microsoft
website.

IMPORTANT
The connection managers listed in the following table work only with Microsoft SQL Server 2012 Enterprise and
Microsoft SQL Server 2012 Developer.

TYPE DESC RIP T IO N TO P IC

ORACLE Connects to an Oracle <version info> The Oracle connection manager is the
server. connection manager component of
the Microsoft Connector for Oracle
by Attunity. The Microsoft Connector
for Oracle by Attunity also includes a
source and a destination. For more
information, see the download page,
Microsoft Connectors for Oracle and
Teradata by Attunity.

SAPBI Connects to an SAP NetWeaver BI The SAP BI connection manager is the


version 7 system. connection manager component of
the Microsoft Connector for SAP BI.
The Microsoft Connector for SAP BI
also includes a source and a
destination. For more information,
see the download page, Microsoft
SQL Server 2008 Feature Pack.
TYPE DESC RIP T IO N TO P IC

TERADATA Connects to a Teradata <version The Teradata connection manager is


info> server. the connection manager component
of the Microsoft Connector for
Teradata by Attunity. The Microsoft
Connector for Teradata by Attunity
also includes a source and a
destination. For more information,
see the download page, Microsoft
Connectors for Oracle and Teradata
by Attunity.

Custom Connection Managers


You can also write custom connection managers. For more information, see Developing a Custom Connection
Manager.

Create connection managers


Integration Services includes a variety of connection managers to suit the needs of tasks that connect to
different types of servers and data sources. Connection managers are used by the data flow components that
extract and load data in different types of data stores, and by the log providers that write logs to a server, SQL
Server table, or file. For example, a package with a Send Mail task uses an SMTP connection manager type to
connect to a Simple Mail Transfer Protocol (SMTP) server. A package with an Execute SQL task can use an OLE
DB connection manager to connect to a SQL Server database. For more information, see Integration Services
(SSIS) Connections.
To automatically create and configure connection managers when you create a new package, you can use the
SQL Server Import and Export Wizard. The wizard also helps you create and configure the sources and
destinations that use the connection managers. For more information, see Create Packages in SQL Server
Data Tools.
To manually create a new connection manager and add it to an existing package, you use the Connection
Managers area that appears on the Control Flow , Data Flow , and Event Handlers tabs of SSIS Designer.
From the Connection Manager area, you choose the type of connection manager to create, and then set
the properties of the connection manager by using a dialog box that SSIS Designer provides. For more
information, see the section, "Using the Connection Managers Area," later in this topic.
After the connection manager is added to a package, you can use it in tasks, Foreach Loop containers,
sources, transformations, and destinations. For more information, see Integration Services Tasks, Foreach
Loop Container, and Data Flow.
Using the Connection Managers Area
You can create connection managers while the Control Flow , Data Flow , or Event Handlers tab of SSIS
Designer is active.
The following diagram shows the Connection Managers area on the Control Flow tab of SSIS Designer.
32-Bit and 64-Bit Providers for Connection Managers
Many of the providers that connection managers use are available in 32-bit and 64-bit versions. The
Integration Services design environment is a 32-bit environment and you see only 32-bit providers while you
are designing a package. Therefore, you can only configure a connection manager to use a specific 64-bit
provider if the 32-bit version of the same provider is also installed.
At run time, the correct version is used, and it does not matter that you specified the 32-bit version of the
provider at design time. The 64-bit version of the provider can be run even if the package is run in SQL
Server Data Tools (SSDT).
Both versions of the provider have the same ID. To specify whether the Integration Services runtime uses an
available 64-bit version of the provider, you set the Run64BitRuntime property of the Integration Services
project. If the Run64BitRuntime property is set to true , the runtime finds and uses the 64-bit provider; if
Run64BitRuntime is false , the runtime finds and uses the 32-bit provider. For more information about
properties you can set on Integration Services projects, see Integration Services &(SSIS) and Studio
Environments.

Add a connection manager


Add a connection manager when you create a package
Use the SQL Server Import and Export Wizard
In addition to creating and configuring a connection manager, the wizard also helps you create and
configure the sources and destinations that use the connection manager. For more information, see
Create Packages in SQL Server Data Tools.
Add a connection manager to an existing package
1. In SQL Server Data Tools (SSDT), open the Integration Services project that contains the package you
want.
2. In Solution Explorer, double-click the package to open it
3. In SSIS Designer, click the Control Flow tab, the Data Flow tab, or the Event Handler tab to make
the Connection Managers area available.
4. Right-click anywhere in the Connection Managers area, and then do one of the following:
Click the connection manager type to add to the package.
-or-
If the type that you want to add is not listed, click New Connection to open the Add SSIS
Connection Manager dialog box, select a connection manager type, and then click OK .
The custom dialog box for the selected connection manager type opens. For more information about
connection manager types and the options that are available, see the following options table.

C O N N EC T IO N M A N A GER O P T IO N S

ADO Connection Manager Configure OLE DB Connection Manager

ADO.NET Connection Manager Configure ADO.NET Connection Manager

Analysis Services Connection Manager Add Analysis Services Connection Manager Dialog Box
UI Reference

Excel Connection Manager Excel Connection Manager Editor

File Connection Manager File Connection Manager Editor

Multiple Files Connection Manager Add File Connection Manager Dialog Box UI Reference

Flat File Connection Manager Flat File Connection Manager Editor (General Page)

Flat File Connection Manager Editor (Columns Page)

Flat File Connection Manager Editor (Advanced Page)

Flat File Connection Manager Editor (Preview Page)

Multiple Flat Files Connection Manager Multiple Flat Files Connection Manager Editor (General
Page)

Multiple Flat Files Connection Manager Editor


(Columns Page)

Multiple Flat Files Connection Manager Editor


(Advanced Page)

Multiple Flat Files Connection Manager Editor (Preview


Page)

FTP Connection Manager FTP Connection Manager Editor


C O N N EC T IO N M A N A GER O P T IO N S

HTTP Connection Manager HTTP Connection Manager Editor (Server Page)

HTTP Connection Manager Editor (Proxy Page)

MSMQ Connection Manager MSMQ Connection Manager Editor

ODBC Connection Manager ODBC Connection Manager UI Reference

OLE DB Connection Manager Configure OLE DB Connection Manager

SMO Connection Manager SMO Connection Manager Editor

SMTP Connection Manager SMTP Connection Manager Editor

SQL Server Compact Edition Connection Manager SQL Server Compact Edition Connection Manager
Editor (Connection Page)

SQL Server Compact Edition Connection Manager


Editor (All Page)

WMI Connection Manager WMI Connection Manager Editor

The Connection Managers area lists the added connection manager.


5. Optionally, right-click the connection manager, click Rename , and then modify the default name of the
connection manager.
6. To save the updated package, click Save Selected Item on the File menu.
Add a connection manager at the project level
1. In SQL Server Data Tools (SSDT), open the Integration Services project.
2. In Solution Explorer , right-click Connection Managers , and click New Connection Manager .
3. In the Add SSIS Connection Manager dialog box, select the type of connection manager, and then
click Add .
The custom dialog box for the selected connection manager type opens. For more information about
connection manager types and the options that are available, see the following options table.

C O N N EC T IO N M A N A GER O P T IO N S

ADO Connection Manager Configure OLE DB Connection Manager

ADO.NET Connection Manager Configure ADO.NET Connection Manager

Analysis Services Connection Manager Add Analysis Services Connection Manager Dialog Box
UI Reference

Excel Connection Manager Excel Connection Manager Editor

File Connection Manager File Connection Manager Editor

Multiple Files Connection Manager Add File Connection Manager Dialog Box UI Reference
C O N N EC T IO N M A N A GER O P T IO N S

Flat File Connection Manager Flat File Connection Manager Editor (General Page)

Flat File Connection Manager Editor (Columns Page)

Flat File Connection Manager Editor (Advanced Page)

Flat File Connection Manager Editor (Preview Page)

Multiple Flat Files Connection Manager Multiple Flat Files Connection Manager Editor (General
Page)

Multiple Flat Files Connection Manager Editor


(Columns Page)

Multiple Flat Files Connection Manager Editor


(Advanced Page)

Multiple Flat Files Connection Manager Editor (Preview


Page)

FTP Connection Manager FTP Connection Manager Editor

HTTP Connection Manager HTTP Connection Manager Editor (Server Page)

HTTP Connection Manager Editor (Proxy Page)

MSMQ Connection Manager MSMQ Connection Manager Editor

ODBC Connection Manager ODBC Connection Manager UI Reference

OLE DB Connection Manager Configure OLE DB Connection Manager

SMO Connection Manager SMO Connection Manager Editor

SMTP Connection Manager SMTP Connection Manager Editor

SQL Server Compact Edition Connection Manager SQL Server Compact Edition Connection Manager
Editor (Connection Page)

SQL Server Compact Edition Connection Manager


Editor (All Page)

WMI Connection Manager WMI Connection Manager Editor

The connection manager you added will show up under the Connections Managers node in the
Solution Explorer . It will also appear in the Connection Managers tab in the SSIS Designer
window for all the packages in the project. The name of the connection manager in this tab will have a
(project) prefix in order to differentiate this project level connection manager from the package level
connection managers.
4. Optionally, right-click the connection manager in the Solution Explorer window under Connection
Managers node (or) in the Connection Managers tab of the SSIS Designer window, click
Rename , and then modify the default name of the connection manager.
NOTE
In the Connection Managers tab of the SSIS Designer window, you won't be able to overwrite the
(project) prefix from the connection manager name. This is by design.

Add SSIS Connection Manager dialog box


Use the Add SSIS Connection Manager dialog box to select the type of connection to add to a package.
To learn more about connection managers, see Integration Services (SSIS) Connections.
Options
Connection manager type
Select a connection type and then click Add , or double-click a connection type, to specify connection
properties using the editor for each type of connection.
Add
Specify connection properties using the editor for each type of connection.

Create a parameter for a connection manager property


1. In the Connection Managers area, right-click the connection manager that you want to create a
parameter for and then click Parameterize .
2. Configure the parameter settings in the Parameterize dialog box. For more information, see
Parameterize Dialog Box.

Delete a connection manager


Delete a connection manager from a package
1. In SQL Server Data Tools (SSDT), open the Integration Services project that contains the package you
want.
2. In Solution Explorer, double-click the package to open it.
3. In SSIS Designer, click the Control Flow tab, the Data Flow tab, or the Event Handler tab to make
the Connection Managers area available.
4. Right-click the connection manager that you want to delete, and then click Delete .
If you delete a connection manager that a package element, such as an Execute SQL task or an OLE DB
source, uses, you will experience the following results:
An error icon appears on the package element that used the deleted connection manager.
The package fails to validate.
The package cannot be run.
5. To save the updated package, click Save Selected Items on the File menu.
Delete a shared connection manager (project level connection manager)
1. To delete a project-level connection manager, right-click the connection manager under Connection
Managers node in the Solution Explorer window, and then click Delete . SQL Server Data Tools
displays the following warning message:
WARNING
When you delete a project connection manager, packages that use the connection manager might not run. You
cannot undo this action. Do you want to delete the connection manager?

2. Click OK to delete the connection manager or Cancel to keep it.

NOTE
You can also delete a project level connection manager from the Connection Manager tab of the SSIS
Designer window opened for any package in the project. You do so by right-clicking the connection manager
in the tab and then by clicking Delete .

Set the Properties of a Connection Manager


All connection managers can be configured using the Proper ties window.
Integration Services also provides custom dialog boxes for modifying the different types of connection
managers in Integration Services. The dialog box has a different set of options depending on the connection
manager type.
Modify a connection manager using the Properties window
1. In SQL Server Data Tools (SSDT), open the Integration Services project that contains the package you
want.
2. In Solution Explorer, double-click the package to open it.
3. In SSIS Designer, click the Control Flow tab, the Data Flow tab, or the Event Handler tab to make
the Connection Managers area available.
4. Right-click the connection manager and click Proper ties .
5. In the Proper ties window, edit the property values. The Proper ties window provides access to some
properties that are not configurable in the standard editor for a connection manager.
6. Click OK .
7. To save the updated package, click Save Selected Items on the File menu.
Modify a connection manager using a connection manager dialog box
1. In SQL Server Data Tools (SSDT), open the Integration Services project that contains the package you
want.
2. In Solution Explorer, double-click the package to open it.
3. In SSIS Designer, click the Control Flow tab, the Data Flow tab, or the Event Handler tab to make
the Connection Managers area available.
4. In the Connection Managers area, double-click the connection manager to open the Connection
Manager dialog box. For information about specific connection manager types, and the options
available for each type, see the following table.

C O N N EC T IO N M A N A GER O P T IO N S

ADO Connection Manager Configure OLE DB Connection Manager


C O N N EC T IO N M A N A GER O P T IO N S

ADO.NET Connection Manager Configure ADO.NET Connection Manager

Analysis Services Connection Manager Add Analysis Services Connection Manager Dialog Box
UI Reference

Excel Connection Manager Excel Connection Manager Editor

File Connection Manager File Connection Manager Editor

Multiple Files Connection Manager Add File Connection Manager Dialog Box UI Reference

Flat File Connection Manager Flat File Connection Manager Editor (General Page)

Flat File Connection Manager Editor (Columns Page)

Flat File Connection Manager Editor (Advanced Page)

Flat File Connection Manager Editor (Preview Page)

Multiple Flat Files Connection Manager Multiple Flat Files Connection Manager Editor (General
Page)

Multiple Flat Files Connection Manager Editor


(Columns Page)

Multiple Flat Files Connection Manager Editor


(Advanced Page)

Multiple Flat Files Connection Manager Editor (Preview


Page)

FTP Connection Manager FTP Connection Manager Editor

HTTP Connection Manager HTTP Connection Manager Editor (Server Page)

HTTP Connection Manager Editor (Proxy Page)

MSMQ Connection Manager MSMQ Connection Manager Editor

ODBC Connection Manager ODBC Connection Manager UI Reference

OLE DB Connection Manager Configure OLE DB Connection Manager

SMO Connection Manager SMO Connection Manager Editor

SMTP Connection Manager SMTP Connection Manager Editor

SQL Server Compact Edition Connection Manager SQL Server Compact Edition Connection Manager
Editor (Connection Page)

SQL Server Compact Edition Connection Manager


Editor (All Page)

WMI Connection Manager WMI Connection Manager Editor


5. To save the updated package, click Save Selected Items on the File menu.

Related Content
Video, Leverage Microsoft Attunity Connector for Oracle to enhance Package Performance, on
technet.microsoft.com
Wiki articles, SSIS Connectivity, on social.technet.microsoft.com
Blog entry, Connecting to MySQL from SSIS, on blogs.msdn.com.
Technical article, Extracting and Loading SharePoint Data in SQL Server Integration Services, on
msdn.microsoft.com.
Technical article, You get "DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER"
error message when using Oracle connection manager in SSIS, on support.microsoft.com.
Data Sources for Integration Services packages
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
SQL Server Data Tools (SSDT) includes a design-time object that you can use in Microsoft Integration Services
packages: the data source.
A data source object is a reference to a connection, and at a minimum, it includes a connection string and a data
source identifier. It can also include additional metadata such a description, a name, a user name, and a password.

NOTE: You can add data sources only to projects that are configured to use the package deployment model. If a
project is configured to use the project deployment model, you use connection managers created at the project
level to share connections, in place of using data sources.
For more information about the deployment models, see Deployment of Projects and Packages. For more
information about converting a project to the project deployment model, see Deploy Projects to Integration
Services Server.

The advantages of using data sources in Integration Services packages include the following:
A data source has project scope, which means that a data source created in an Integration Services project is
available to all the packages in the project. A data source can be defined one time and then referenced by
connection managers in multiple packages.
A data source offers synchronization between the data source object and its package references. If the data
source and the packages that reference it reside in the same project, the connection string property of the
data source references is automatically updated when the data source changes.

Reference Data Sources


To add a data source object to an Integration Services project, right-click the Data Sources folder in Solution
Explorer and then click New Data Source . The item is added to the Data Sources folder. If you want to use data
source objects that were created in other projects, you must first add them to the project.
You use a data source object in a package by adding a connection manager that references the data source object
to the package. You can add it to the package before you build the package control flow and data flows, or as a step
in constructing the control flow or data flow.
A data source object represents a simple connection to a data source and provides access to the objects in the data
store that it references. For example, a data source object that connects to the SQL ServerAdventureWorks Sample
Database includes all 60 tables from the database.
There is no dependency between a data source and the connection managers that reference it. If a data source is no
longer part of the project, the packages continue to be valid, because information about the data source, such as its
connection type and connection string, is included in the package definition.
ADO Connection Manager
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
An ADO connection manager enables a package to connect to ActiveX Data Objects (ADO) objects, such as a
recordset. This connection manager is typically used in custom tasks written in an earlier version of a language,
such as Microsoft Visual Basic 6.0, or in custom tasks that are part of an existing application that uses ADO to
connect to a data source.
When you add an ADO connection manager to a package, Microsoft SQL Server Integration Services creates a
connection manager that will resolve to an ADO connection at run time, sets the connection manager properties,
and adds the connection manager to the Connections collection on the package. The
ConnectionManagerType property of the connection manager is set to ADO .

Troubleshooting the ADO Connection Manager


When being read by an ADO connection manager, certain SQL Server date data types will generate the results
shown in the following table.

SQ L SERVER DATA T Y P E RESULT

time , datetimeoffset The package fails unless the package uses parameterized SQL
commands. To use parameterized SQL commands, use the
Execute SQL Task in your package. For more information, see
Execute SQL Task and Parameters and Return Codes in the
Execute SQL Task.

datetime2 The ADO connection manager truncates the millisecond


value.

NOTE
For more information about SQL Server data types and how they map to Integration Services data types, see Data Types
(Transact-SQL) and Integration Services Data Types.

Configuring the ADO Connection Manager


You can configure an ADO connection manager in the following ways:
Provide a specific connection string configured to meet the requirements of the selected provider.
Depending on the provider, include the name of the data source to connect to.
Provide security credentials as appropriate for the selected provider.
Indicate whether the connection that is created from the connection manager is retained at run time.
You can set properties through SSIS Designer or programmatically.
For more information about the properties that you can set in SSIS Designer, click the following topic:
Configure OLE DB Connection Manager
For information about configuring a connection manager programmatically, see ConnectionManager and Adding
Connections Programmatically.

See Also
Integration Services (SSIS) Connections
ADO.NET connection manager
11/2/2020 • 6 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
An ADO.NET connection manager enables a package to access data sources by using a .NET provider. Typically,
you use this connection manager to access data sources such as Microsoft SQL Server. You can also access data
sources exposed through OLE DB and XML in custom tasks that are written in managed code, by using a
language such as C#.
When you add an ADO.NET connection manager to a package, SQL Server Integration Services creates a
connection manager that is resolved as an ADO.NET connection at runtime. It sets the connection manager
properties, and adds the connection manager to the Connections collection on the package.
The ConnectionManagerType property of the connection manager is set to ADO.NET . The value of
ConnectionManagerType is qualified to include the name of the .NET provider that the connection manager uses.

ADO.NET connection manager troubleshooting


You can log the calls that the ADO.NET connection manager makes to external data providers. You can then
troubleshoot the connections that the ADO.NET connection manager makes to external data sources. To log the
calls that the ADO.NET connection manager makes to external data providers, enable package logging, and select
the Diagnostic event at the package level. For more information, see Troubleshooting Tools for Package
Execution.
When being read by an ADO.NET connection manager, data of certain SQL Server date data types generates the
results shown in the following table.

SQ L SERVER DATA T Y P E RESULT

time , datetimeoffset The package fails unless the package uses parameterized
SQL commands. To use parameterized SQL commands, use
the Execute SQL Task in your package. For more information,
see Execute SQL Task and Parameters and Return Codes in
the Execute SQL Task.

datetime2 The ADO.NET connection manager truncates the millisecond


value.

NOTE
For more information about SQL Server data types and how they map to Integration Services data types, see Data Types
(Transact-SQL) and Integration Services Data Types.

ADO.NET connection manager configuration


You can set properties through SSIS Designer, or programmatically.
Provide a specific connection string configured to meet the requirements of the selected .NET provider.
Depending on the provider, include the name of the data source to connect to.
Provide security credentials as appropriate for the selected provider.
Indicate whether the connection created from the connection manager is retained at runtime.
Many of configuration options of the ADO.NET connection manager depend on the .NET provider that the
connection manager uses.
For more information about the properties that you can set in SSIS Designer, see .
Conf igure ADO .N ET Connection Manager

For information about configuring a connection manager programmatically, see ConnectionManager and
Adding Connections Programmatically.
Configure ADO.NET connection manager
Use the Configure ADO.NET Connection Manager dialog box to add a connection to a data source that can
be accessed by using a .NET Framework data provider. For example, one such provider is the SqlClient provider.
The connection manager can use an existing connection, or you can create a new one.
To learn more about the ADO.NET connection manager, see ADO.NET Connection Manager.
Options
Data connections
Select an existing ADO.NET data connection from the list.
Data connection proper ties
View properties and values for the selected ADO.NET data connection.
New
Create an ADO.NET data connection by using the Connection Manager dialog box.
Delete
Select a connection, and then delete it by selecting Delete .
Managed identities for Azure resources authentication
When running SSIS packages on Azure-SSIS integration runtime in Azure Data Factory, you can use the
managed identity associated with your data factory for Azure SQL Database or Azure SQL Managed Instance
authentication. The designated factory can access and copy data from or to your database by using this identity.

NOTE
When you use Azure Active Directory (Azure AD) authentication (including managed identity authentication) to connect to
Azure SQL Database or Azure SQL Managed Instance, you might encounter a problem related to package execution
failure or unexpected behavior change. For more information, see Azure AD features and limitations.

To use managed identity authentication for Azure SQL Database, follow these steps to configure your database:
1. Provision an Azure Active Directory administrator for your Azure SQL server on the Azure portal, if you
haven't already done so. The Azure AD administrator can be an Azure AD user or Azure AD group. If you
grant the group with managed identity an admin role, skip step 2 and 3. The administrator will have full
access to the database.
2. Create contained database users for the data factory managed identity. Connect to the database from or
to which you want to copy data by using tools like SSMS, with an Azure AD identity that has at least
ALTER ANY USER permission. Run the following T-SQL:

CREATE USER [your data factory name] FROM EXTERNAL PROVIDER;

3. Grant the data factory managed identity needed permissions, as you normally do for SQL users and
others. Refer to Database-Level Roles for appropriate roles. Run the following code. For more options, see
this document.

EXEC sp_addrolemember [role name], [your data factory name];

To use managed identity authentication for Azure SQL Managed Instance, follow these steps to configure your
database:
1. Provision an Azure Active Directory administrator for your managed instance on the Azure portal, if you
haven't already done so. The Azure AD administrator can be an Azure AD user or Azure AD group. If you
grant the group with managed identity an admin role, skip step 2-4. The administrator will have full
access to the database.
2. Create logins for the data factory managed identity. In SQL Server Management Studio (SSMS), connect
to your Managed Instance using a SQL Server account that is a sysadmin . In master database, run the
following T-SQL:

CREATE LOGIN [your data factory name] FROM EXTERNAL PROVIDER;

3. Create contained database users for the data factory managed identity. Connect to the database from or
to which you want to copy data, run the following T-SQL:

CREATE USER [your data factory name] FROM EXTERNAL PROVIDER;

4. Grant the data factory managed identity needed permissions as you normally do for SQL users and
others. Run the following code. For more options, see this document.

ALTER ROLE [role name e.g., db_owner] ADD MEMBER [your data factory name];

Finally, configure managed identity authentication for the ADO.NET connection manager. Here are the options to
do this:
Configure at design time. In SSIS Designer, right-click the ADO.NET connection manager, and select
Proper ties . Update the property ConnectUsingManagedIdentity to True .

NOTE
Currently, the connection manager property ConnectUsingManagedIdentity doesn't take effect (indicating that
managed identity authentication doesn't work) when you run SSIS package in SSIS Designer or Microsoft SQL
Server.

Configure at runtime. When you run the package via SQL Server Management Studio (SSMS) or Azure
Data Factory Execute SSIS Package activity, find the ADO.NET connection manager. Update its property
ConnectUsingManagedIdentity to True .

NOTE
In Azure-SSIS integration runtime, all other authentication methods (for example, integrated authentication and
password) preconfigured on the ADO.NET connection manager are overridden when managed identity
authentication is used to establish a database connection.
NOTE
To configure managed identity authentication on existing packages, the preferred way is to rebuild your SSIS project with
the latest SSIS Designer at least once. Redeploy that SSIS project to your Azure-SSIS integration runtime, so that the new
connection manager property ConnectUsingManagedIdentity is automatically added to all ADO.NET connection
managers in your SSIS project. The alternative way is to directly use a property override with property path
\Package.Connections[{the name of your connection
manager}].Proper ties[ConnectUsingManagedIdentity] at runtime.

See also
Integration Services (SSIS) Connections
Analysis Services Connection Manager
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
An SQL Server Analysis Services connection manager enables a package to connect to a server that runs an
Analysis Services database or to an Analysis Services project that provides access to cube and dimension data.
You can only connect to an Analysis Services project while developing packages in SQL Server Data Tools (SSDT).
At run time, packages connect to the server and the database to which you deployed the Analysis Services
project.
Both tasks, such as the Analysis Services Execute DDL task and the Analysis Services Processing task, and
destinations, such as the Data Mining Model Training destination, use an Analysis Services connection manager.
For more information about Analysis Services databases, see Multidimensional Model Databases (SSAS).

Configuration of the Analysis Services Connection Manager


When you add an Analysis Services connection manager to a package, SQL Server Integration Services creates a
connection manager that is resolved as an Analysis Services connection at run time, sets the connection manager
properties, and adds the connection manager to the Connections collection on the package. The
ConnectionManagerType property of the connection manager is set to MSOL AP100 .
You can configure the Analysis Services connection manager in the following ways:
Provide a connection string configured to meet the requirements of the Microsoft OLE Provider for
Analysis Services provider.
Specify the instance of Analysis Services or the Analysis Services project to connect to.
If you are connecting to an instance of Analysis Services, specify the authentication mode.

NOTE
If you use SSIS in Azure Data Factory (ADF) and want to connect to Azure Analysis Services (AAS) instance, you can not
use an account with Multi-Factor Authentication (MFA) enabled, but must use an account that does not require any
interactivity/MFA or a service principal instead. To use the latter, see here to create one and assign the server administrator
role to it, then select Use a specific user name and password to log on to the server in your connection manager,
and finally enter User name: app:YourApplicationID and Password: YourAuthorizationKey .

Indicate whether the connection that is created from the connection manager is retained at run time.
You can set properties through SSIS Designer or programmatically.
For more information about the properties that you can set in SSIS Designer, click one of the following topic:
Add Analysis Services Connection Manager Dialog Box UI Reference
For information about configuring a connection manager programmatically, see ConnectionManager and Adding
Connections Programmatically.
Add Analysis Services Connection Manager Dialog
Box UI Reference
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
Use the Add Analysis Ser vices Connection Manager dialog box to create a connection to a server running
SQL Server Analysis Services, or to edit connection properties.
To learn more about the Analysis Services connection manager, see Analysis Services Connection Manager.

Options
Create a connection to a computer running Analysis Ser vices
Use the default connection to a server that is running an instance of Analysis Services, or create a new connection
by clicking Edit .
Edit
Use the Connection Manager dialog box to create a connection to a server that is running an instance of
Analysis Services, and to edit connection properties.
Create a connection to an Analysis Ser vices project in this solution
Specify that the connection will use an Analysis Services project in the open solution.

NOTE
Analysis Services tabular model projects are not supported for this scenario.

Analysis Ser vices project


Select an Analysis Services project from the list.

See Also
Integration Services Error and Message Reference
Integration Services (SSIS) Connections
Azure Data Lake Analytics connection manager
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
A SQL Server Integration Services (SSIS) package can use the Azure Data Lake Analytics connection manager to
connect to a Data Lake Analytics account with one of the two following authentication types:
Azure Active Directory (Azure AD) User Identity
Azure AD Service Identity
The Data Lake Analytics connection manager is a component of the SQL Server Integration Services (SSIS) Feature
Pack for Azure.

Configure the connection manager


1. In the Add SSIS Connection Manager dialog box, select AzureDataLakeAnalytics > Add . The Azure
Data Lake Analytics Connection Manager Editor dialog box opens.
2. In the Azure Data Lake Analytics Connection Manager Editor dialog box, in the ADL A Account
Name field, provide the Data Lake Analytics account name. For example: myadlaaccountname.
3. In the Authentication field, choose the appropriate authentication type to access the data in Data Lake
Analytics.
a. If you select the Azure AD User Identity authentication option:
i. Provide values for the User Name and Password fields.
ii. To test the connection, select Test Connection . If you or the tenant administrator didn't previously
consent to allow SSIS to access your Data Lake Analytics account, select Accept when prompted. For more
information about this consent experience, see Integrating applications with Azure Active Directory.

NOTE
When you select the Azure AD User Identity authentication option, multi-factor authentication and Microsoft
account authentication are not supported.

b. If you select the Azure AD Ser vice Identity authentication option:


i. Create an Azure AD application and service principal to access the Data Lake Analytics account. For more
information about this authentication option, see Use portal to create Active Directory application and
service principal that can access resources.
ii. Assign appropriate permissions to let this Azure AD application access your Data Lake Analytics account.
Learn how to grant permissions to your Data Lake Analytics account by using the Add User wizard.
iii. Provide values for the Application ID , Authentication Key , and Tenant ID fields.
iv. To test the connection, select Test Connection .
4. Select OK to close the Azure Data Lake Analytics Connection Manager Editor dialog box.

View the properties of the connection manager


You can see the properties of the connection manager you created in the Proper ties window.
Azure Data Lake Store Connection Manager
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
A SQL Server Integration Services (SSIS) package can use the Azure Data Lake Store Connection Manager to
connect to an Azure Data Lake Storage Gen1 account with one of the two following authentication types:
Azure AD User Identity
Azure AD Service Identity
The Azure Data Lake Store Connection Manager is a component of the SQL Server Integration Services (SSIS)
Feature Pack for Azure.

NOTE
To ensure that the Azure Data Lake Store Connection Manager and the components that use it - that is, the Data Lake
Storage Gen1 source and the Data Lake Storage Gen1 destination - can connect to services, make sure you download the
latest version of the Azure Feature Pack here.

Configure the Azure Data Lake Store Connection Manager


1. In the Add SSIS Connection Manager dialog box, select AzureDataLake , and then select Add . The
Azure Data Lake Store Connection Manager Editor dialog box opens.
2. In the Azure Data Lake Store Connection Manager Editor dialog box, in the ADLS Host field, provide
the Data Lake Storage Gen1 host URL. For example: https://test.azuredatalakestore.net or
test.azuredatalakestore.net .

3. In the Authentication field, choose the appropriate authentication type to access the data in Data Lake
Storage Gen1.
a. If you select the Azure AD User Identity authentication option, do the following things:
a. Provide values for the User Name and Password fields.
b. To test the connection, select Test Connection . If you or the tenant administrator didn't
previously consent to allow SSIS to access your Data Lake Storage Gen1 data, select Accept
when prompted. For more information about this consent experience, see Integrating
applications with Azure Active Directory.

NOTE
When you select the Azure AD User Identity authentication option, multi-factor authentication and
Microsoft account authentication are not supported.

b. If you select the Azure AD Ser vice Identity authentication option, do the following things:
a. Create an Azure Active Directory (AAD) application and service principal to access the Data
Lake Storage Gen1 data.
b. Assign appropriate permissions to let this AAD application access your Data Lake Storage
Gen1 resources. For more information about this authentication option, see Use portal to
create Active Directory application and service principal that can access resources.
c. Provide values for the Client Id , Secret Key , and Tenant Name fields.
d. To test the connection, select Test Connection .
4. Select OK to close the Azure Data Lake Store Connection Manager Editor dialog box.

View the properties of the connection manager


You can see the properties of the connection manager you created in the Proper ties window.
Azure HDInsight Connection Manager
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
The Azure HDInsight Connection Manager enables an SSIS package to connect to an Azure HDInsight cluster.
The Azure HDInsight Connection Manager is a component of the SQL Server Integration Services (SSIS)
Feature Pack for Azure.
To create and configure an Azure HDInsight Connection Manager , follow the steps below:
1. In the Add SSIS Connection Manager dialog box, select AzureHDInsight , and click Add .
2. In the Azure HDInsight Connection Manager Editor dialog box, specify the Cluster DNS name (without
the protocol prefix), Username , and Password for the HDInsight cluster to connect to.
3. Click OK to close the dialog box.
4. You can see the properties of the connection manager you created in the Proper ties window.
Azure Resource Manager Connection Manager
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
The Azure Resource Manager Connection Manager enables an SSIS package to manage Azure resources
using a service principal.
The Azure Resource Manager Connection Manager is a component of the SQL Server Integration Services
(SSIS) Feature Pack for Azure.
To create and configure an Azure Resource Manager Connection Manager , follow the steps below:
1. In the Add SSIS Connection Manager dialog box, select AzureResourceManager , and click Add .
2. In the Azure Resource Manager Connection Manager Editor dialog box, specify the Application ID ,
Application Key , and Tenant ID for the service principal. For details about these properties, please refer to this
article.
3. Click OK to close the dialog box.
4. You can see the properties of the connection manager you created in the Proper ties window.
Azure Storage connection manager
11/2/2020 • 3 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
The Azure Storage connection manager enables a SQL Server Integration Services (SSIS) package to connect to an
Azure Storage account. The connection manager is a component of the SQL Server Integration Services (SSIS)
Feature Pack for Azure.
In the Add SSIS Connection Manager dialog box, select AzureStorage > Add .
The following properties are available.
Ser vice: Specifies the storage service to connect to.
Account name: Specifies the storage account name.
Authentication: Specifies the authentication method to use. AccessKey, ServicePrincipal, and
SharedAccessSignature authentication are supported.
AccessKey: For this authentication method, specify the Account key .
Ser vicePrincipal: For this authentication method, specify the Application ID , Application key , and
Tenant ID of the service principal. For Test Connection to work, the service principal should be
assigned at least the Storage Blob Data Reader role to the storage account. For more information, see
Grant access to Azure blob and queue data with RBAC in the Azure portal.
SharedAccessSignature: For this authentication method, specify at least the Token of the shared
access signature. To test connection, specify additionally the resource scope to test against. It may be
Ser vice , Container , or Blob . For Container and Blob , specify container name and blob path,
respectively. For more information, see Azure Storage shared access signature overview.
Environment: Specifies the cloud environment hosting the storage account.

Managed identities for Azure resources authentication


When running SSIS packages on Azure-SSIS integration runtime in Azure Data Factory, you can use the managed
identity associated with your data factory for Azure storage authentication. The designated factory can access and
copy data from or to your storage account by using this identity.
Refer to Authenticate access to Azure Storage using Azure Active Directory for Azure Storage authentication in
general. To use managed identity authentication for Azure Storage:
1. Find the data factory managed identity from the Azure portal. Go to your data factory's Proper ties . Copy
the Managed Identity Application ID (not Managed Identity Object ID ).
2. Grant the managed identity proper permission in your storage account. For more details about roles, see
Manage access rights to Azure Storage data with RBAC.
As source , in Access control (IAM), grant at least the Storage Blob Data Reader role.
As destination , in Access control (IAM), grant at least the Storage Blob Data Contributor role.
Then configure managed identity authentication for the Azure Storage connection manager. Here are the options to
do this:
Configure at design time. In SSIS Designer, double-click the Azure Storage connection manager to open
Azure Storage Connection Manager Editor . Select Use managed identity to authenticate on
Azure .
NOTE
Currently, this option doesn't take effect (indicating that managed identity authentication doesn't work) when you run
SSIS package in SSIS Designer or Microsoft SQL Server.

Configure at runtime. When you run the package via SQL Server Management Studio (SSMS) or Azure
Data Factory Execute SSIS Package activity, find the Azure Storage connection manager. Update its property
ConnectUsingManagedIdentity to True .

NOTE
In Azure-SSIS integration runtime, all other authentication methods (for example, access key and service principal)
preconfigured on the Azure Storage connection manager are overridden when managed identity authentication is
used for storage operations.

NOTE
To configure managed identity authentication on existing packages, the preferred way is to rebuild your SSIS project with the
latest SSIS Designer at least once. Redeploy that SSIS project to your Azure-SSIS integration runtime, so that the new
connection manager property ConnectUsingManagedIdentity is automatically added to all Azure Storage connection
managers in your SSIS project. The alternative way is to directly use a property override with property path
\Package.Connections[{the name of your connection manager}].Proper ties[ConnectUsingManagedIdentity] at
runtime.

Secure network traffic to your storage account


Azure Data Factory is now a trusted Microsoft service to Azure storage. When you use managed identity
authentication, it is possible to secure your storage account by limiting access to selected networks while still
allowing your data factory to access your storage account. Please refer to Managing exceptions for instructions.

See also
Integration Services (SSIS) Connections
Azure Subscription Connection Manager
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
The Azure Subscription connection manager enables an SSIS package to connect to an Azure subscription by
using the values you specify for the properties: Azure Subscription ID and Management Certificate.
The Azure Subscription connection manager is a component of the SQL Server Integration Services (SSIS)
Feature Pack for Azure.
1. In the Add SSIS Connection Manager dialog box shown above, you select Azure Subscription , and
click Add . You should see the following Azure Subscription Connection Manager Editor dialog box.

2. Enter your Azure subscription ID, which uniquely identifies an Azure subscription, for the Azure
subscription ID . The value can be found on the Azure Management Portal under Settings page:

3. Choose Management cer tificate store location and Management cer tificate store name from the
drop-down lists.
4. Enter Management cer tificate thumbprint or click the Browse... to choose a certificate from the
selected store. The certificate must be uploaded as a management certificate for the subscription. To do so,
click Upload on the following page of the Azure Portal (see this MSDN post for more detail).

5. Click Test Connection to test the connection.


6. Click OK to close the dialog box.
Excel Connection Manager
11/2/2020 • 3 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
An Excel connection manager enables a package to connect to a Microsoft Excel workbook file. The Excel source
and the Excel destination that Microsoft SQL Server Integration Services includes use the Excel connection
manager.

IMPORTANT
For detailed info about connecting to Excel files, and about limitations and known issues for loading data from or to Excel
files, see Load data from or to Excel with SQL Server Integration Services (SSIS).

When you add an Excel connection manager to a package, Integration Services creates a connection manager
that is resolved as an Excel connection at run time, sets the connection manager properties, and adds the
connection manager to the Connections collection on the package.
The ConnectionManagerType property of the connection manager is set to EXCEL .

Configure the Excel Connection Manager


You can configure the Excel connection manager in the following ways:
Specify the path of the Excel workbook file.
Specify the version of Excel that was used to create the file.
Indicate whether the first row in the selected worksheets or ranges contains column names.
You can set properties through SSIS Designer or programmatically.
For more information about the properties that you can set in SSIS Designer, see .
Excel Connection Manager Edit or

For information about configuring a connection manager programmatically, see ConnectionManager and
Adding Connections Programmatically.

Excel Connection Manager Editor


Use the Excel Connection Manager Editor dialog box to add a connection to an existing or a new Microsoft
Excel workbook file.
Options
Excel file path
Type the path and file name of an existing or a new Excel workbook file.
Browse
Use the Open dialog box to navigate to the folder in which the Excel file exists or where you want to create the
new file.
Excel version
Specify the version of Microsoft Excel that was used to create the file.
First row has column names
Specify whether the first row of data in the selected worksheet contains column names. The default value of this
option is True .

Solution to import data with mixed data types from Excel


If you use data that contains mixed data types, by default, the Excel driver reads the first 8 rows (configured by
the TypeGuessRows register key). Based on the first 8 rows of data, the Excel driver tries to guess the data type
of each column. For example, if your Excel data source has numbers and text in one column, if the first 8 rows
contain numbers, the driver might determine based on those first 8 rows that the data in the column is the
integer type. In this case, SSIS skips text values and imports them as NULL into the destination.
To resolve this issue, you can try one of following solutions:
Change the Excel column type to Text in the Excel file.
Add the IMEX extended property to the connection string to override the driver's default behavior. When
you add the ";IMEX=1" extended property to the end of the connection string, Excel treats all data as text.
See the following example:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\ExcelFileName.xlsx;Extended Properties="EXCEL 12.0


XML;HDR=YES;IMEX=1";

For this solution to work reliably, you might have to also modify the registry settings. The main.cmd file is
as follows:

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\12.0\Access Connectivity


Engine\Engines\Excel" /t REG_DWORD /v TypeGuessRows /d 0 /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel"
/t REG_DWORD /v TypeGuessRows /d 0 /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\14.0\Access Connectivity
Engine\Engines\Excel" /t REG_DWORD /v TypeGuessRows /d 0 /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Excel"
/t REG_DWORD /v TypeGuessRows /d 0 /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\15.0\Access Connectivity
Engine\Engines\Excel" /t REG_DWORD /v TypeGuessRows /d 0 /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\Access Connectivity Engine\Engines\Excel"
/t REG_DWORD /v TypeGuessRows /d 0 /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\16.0\Access Connectivity
Engine\Engines\Excel" /t REG_DWORD /v TypeGuessRows /d 0 /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Access Connectivity Engine\Engines\Excel"
/t REG_DWORD /v TypeGuessRows /d 0 /f

Save the file in CSV format and change the SSIS package to support a CSV import.

Related Tasks
Load data from or to Excel with SQL Server Integration Services (SSIS)
Excel Source
Excel Destination
File Connection Manager
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data
Factory
A File connection manager enables a package to reference an existing file or folder, or to create a file or
folder at run time. For example, you can reference an Excel file. Certain components in Microsoft SQL
Server Integration Services use information in files to perform their work. For example, an Execute SQL
task can reference a file that contains the SQL statements that the task executes. Other components
perform operations on files. For example, the File System task can reference a file to copy it to a new
location.

Usage Types of the File Connection Manager


The FileUsageType property of the File connection manager specifies how the file connection is used.
The File connection manager can create a file, create a folder, use an existing file, or use an existing folder.
The following table lists the values of FileUsageType .

VA L UE DESC RIP T IO N

0 File connection manager uses an existing file.

1 File connection manager creates a file.

2 File connection manager uses an existing folder.

3 File connection manager creates a folder.

Multiple File or Folder Connections


The File connection manager can reference only one file or folder. To reference multiple files or folders,
use a Multiple Files connection manager instead of a File connection manager. For more information, see
Multiple Files Connection Manager.

Configuration of the File Connection Manager


When you add a File connection manager to a package, Integration Services creates a connection
manager that will resolve to a File connection at run time, sets the File connection properties, and adds
the File connection to the Connections collection of the package.
The ConnectionManagerType property of the connection manager is set to FILE .
You can configure a File connection manager in the following ways:
Specify the usage type.
Specify a file or folder.
You can set the ConnectionString property for the File connection manager by specifying an expression
in the Properties window of SQL Server Data Tools (SSDT). However, to avoid a validation error when
you use an expression to specify the file or folder, in the File Connection Manager Editor , for
File/Folder , add a file or folder path.
You can set properties through SSIS Designer or programmatically.
For more information about the properties that you can set in SSIS Designer, see .
File Connection Manager Edit or

For information about configuring a connection manager programmatically, see ConnectionManager


and Adding Connections Programmatically.

File Connection Manager Editor


Use the File Connection Manager Editor dialog box to specify the properties used to connect to a file
or a folder.

NOTE
You can set the ConnectionString property for the File connection manager by specifying an expression in the
Properties window of SQL Server Data Tools (SSDT). However, to avoid a validation error when you use an
expression to specify the file or folder, in the File Connection Manager Editor , for File/Folder , add a file or
folder path.

To learn more about the File connection manager, see File Connection Manager.
Options
Usage Type
Specify whether the File Connection Manager connects to an existing file or folder or creates a new
file or folder.

VA L UE DESC RIP T IO N

Create file Create a new file at run time.

Existing file Use an existing file.

Create folder Create a new folder at run time.

Existing folder Use an existing folder.

File / Folder
If File , specify the file to use.
If Folder , specify the folder to use.
Browse
Select the file or folder by using the Select File or Browse for Folder dialog box.
Add File Connection Manager Dialog Box UI
Reference
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
Use the Add File Connection Manager dialog box to define a connection to a group of files or folders.
To learn more about the Multiple Files connection manager, see Multiple Files Connection Manager.

NOTE
The built-in tasks and data flow components in Integration Services do not use the Multiple Files connection manager.
However, you can use this connection manager in the Script task or Script component.

Options
Usage type
Specify the type of files to use for the multiple files connection manager.

VA L UE DESC RIP T IO N

Create files The connection manager will create the files.

Existing files The connection manager will use existing files.

Create folders The connection manager will create the folders.

Existing folders The connection manager will use existing folders.

Files / Folders
View the files or folders that you have added by using the buttons described as follows.
Add
Add a file by using the Select Files dialog box, or add a folder by using the Browse for Folder dialog box.
Edit
Select a file or folder, and then replace it with a different file or folder by using the Select Files or Browse for
Folder dialog box.
Remove
Select a file or folder, and then remove it from the list by using the Remove button.
Arrow buttons
Select a file or folder, and then use the arrow buttons to move it up or down to specify the sequence of access.

See Also
Integration Services Error and Message Reference
Suggest Column Types Dialog Box UI Reference
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
Use the Suggest Column Types dialog box to identify the data type and length of columns in a Flat File
Connection Manager based on a sampling of the file content.
To learn more about the data types used by Integration Services, see Integration Services Data Types.

Options
Number of rows
Type or select the number of rows in the sample that the algorithm uses.
Suggest the smallest integer data type
Clear this check box to skip the assessment. If selected, determines the smallest possible integer data type for
columns that contain integral numeric data.
Suggest the smallest real data type
Clear this check box to skip the assessment. If selected, determines whether columns that contain real numeric data
can use the smaller real data type, DT_R4.
Identify Boolean columns using the following values
Type the two values that you want to use as the Boolean values true and false. The values must be separated by a
comma, and the first value represents True.
Pad string columns
Select this check box to enable string padding.
Percent padding
Type or select the percentage of the column lengths by which to increase the length of columns for character data
types. The percentage must be an integer.

See Also
Integration Services Error and Message Reference
Flat File Connection Manager
Flat File Connection Manager
11/2/2020 • 13 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
A Flat File connection manager enables a package to access data in a flat file. For example, the Flat File
source and destination can use Flat File connection managers to extract and load data.
The Flat File connection manager can access only one file. To reference multiple files, use a Multiple Flat Files
connection manager instead of a Flat File connection manager. For more information, see Multiple Flat Files
Connection Manager.

Column Length
By default, the Flat File connection manager sets the length of string columns to 50 characters. In the Flat
File Connection Manager Editor dialog box, you can evaluate sample data and automatically resize the
length of these columns to prevent truncation of data or excess column width. Also, unless you subsequently
resize the column length in a Flat File source or a transformation, the column length of string column
remains the same throughout the data flow. If these string columns map to destination columns that are
narrower, warnings appear in the user interface. Moreover, at run time, errors may occur due to data
truncation. To avoid errors or truncation, you can resize the columns to be compatible with the destination
columns in the Flat File connection manager, the Flat File source, or a transformation. To modify the length of
output columns, you set the Length property of the output column on the Input and Output Proper ties
tab in the Advanced Editor dialog box.
If you update column lengths in the Flat File connection manager after you have added and configured the
Flat File source that uses the connection manager, you do not have to manually resize the output columns in
the Flat File source. When you open the Flat File Source dialog box, the Flat File source provides an option
to synchronize the column metadata.

Configuration of the Flat File Connection Manager


When you add a Flat File connection manager to a package, SQL Server Integration Services creates a
connection manager that will resolve to a Flat File connection at run time, sets the Flat File connection
properties, and adds the Flat File connection manager to the Connections collection of the package.
The ConnectionManagerType property of the connection manager is set to FL ATFILE .
By default, the Flat File connection manager always checks for a row delimiter in unquoted data, and starts a
new row when a row delimiter is found. This enables the connection manager to correctly parse files with
rows that are missing column fields.
In some cases, disabling this feature may improve package performance. You can disable this feature by
setting the Flat File connection manager property, AlwaysCheckForRowDelimiters , to False .
You can configure the Flat File connection manager in the following ways:
Specify the file, locale, and code page to use. The locale is used to interpret locale-sensitive data such
as dates, and the code page is used to convert string data to Unicode.
Specify the file format. You can use a delimited, fixed width, or ragged right format.
Specify a header row, data row, and column delimiters. Column delimiters can be set at the file level
and overwritten at the column level.
Indicate whether the first row in the file contains column names.
Specify a text qualifier character. Each column can be configured to recognize a text qualifier.
The use of a qualifier character to embed a qualifier character into a qualified string is supported by
the Flat File Connection Manager. The double instance of a text qualifier is interpreted as a literal,
single instance of that string. For example, if the text qualifier is a single quote and the input data is
'abc', 'def', 'g'hi', the output data is abc, def, g'hi. However, an instance of a qualifier embedded in a
qualified string causes the Flat File Source to fail with the error DTS_E_PRIMEOUTPUTFAILED.
Set properties such as the name, data type, and maximum width on individual columns.
You can set the ConnectionString property for the Flat File connection manager by specifying an expression
in the Properties window of SQL Server Data Tools (SSDT). To avoid a validation error, do the following.
When you use an expression to specify the file, add a file path in the File name box in the Flat File
Connection Manager Editor .
Set the DelayValidation property on the Flat File connection manager to True .
You can use an expression to create a file name at runtime by using the Flat File connection manager with
the Flat File destination.
You can set properties through SSIS Designer or programmatically.
For information about configuring a connection manager programmatically, see ConnectionManager and
Adding Connections Programmatically.

Flat File Connection Manager Editor (General Page)


Use the General page of the Flat File Connection Manager Editor dialog box to select a file and data
format. A flat file connection enables a package to connect to a text file.
To learn more about the Flat File connection manager, see Flat File Connection Manager.
Options
Connection manager name
Provide a unique name for the flat file connection in the workflow. The name provided will be displayed
within SSIS Designer.
Description
Describe the connection. As a best practice, describe the connection in terms of its purpose, to make
packages self-documenting and easier to maintain.
File name
Type the path and file name to use in the flat file connection.
Browse
Locate the file name to use in the flat file connection.
Locale
Specify the locale to provide language-specific information for ordering and for date and time formats.
Unicode
Indicate whether to use Unicode. If you use Unicode, you cannot specify a code page.
Code page
Specify the code page for non-Unicode text.
Format
Indicate whether the file uses delimited, fixed width, or ragged right formatting.

VA L UE DESC RIP T IO N

Delimited Columns are separated by delimiters, specified on the


Columns page.

Fixed width Columns have a fixed width.

Ragged right Ragged right files are files in which every column has a
fixed width, except for the last column. It is delimited by
the row delimiter.

Text qualifier
Specify the text qualifier to use. For example, you can specify that text fields are enclosed in quotation marks.

NOTE
After you select a text qualifier, you cannot re-select the None option. Type None to de-select the text qualifier.

Header row delimiter


Select from the list of delimiters for header rows, or enter the delimiter text.

VA L UE DESC RIP T IO N

{CR}{LF} The header row is delimited by a carriage return-line feed


combination.

{CR} The header row is delimited by a carriage return.

{LF} The header row is delimited by a line feed.

Semicolon {;} The header row is delimited by a semicolon.

Colon {:} The header row is delimited by a colon.

Comma {,} The header row is delimited by a comma.

Tab {t} The header row is delimited by a tab.

Ver tical bar {|} The header row is delimited by a vertical bar.

Header rows to skip


Specify the number of header rows or initial data rows to skip, if any.
Column names in the first data row
Indicate whether to expect or provide column names in the first data row.

Flat File Connection Manager Editor (Columns Page)


Use the Columns page of the Flat File Connection Manager Editor dialog box to specify the row and
column information, and to preview the file.
To learn more about the Flat File connection manager, see Flat File Connection Manager.
Static Options
Connection manager name
Provide a unique name for the Flat File connection in the workflow. The name provided will be displayed
within SSIS Designer.
Description
Describe the connection. As a best practice, describe the connection in terms of its purpose, to make
packages self-documenting and easier to maintain.
Flat File Format Dynamic Options
Format = Delimited
Row delimiter
Select from the list of available row delimiters, or enter the delimiter text.

VA L UE DESC RIP T IO N

{CR}{LF} Rows are delimited by a carriage return-line feed


combination.

{CR} Rows are delimited by a carriage return.

{LF} Rows are delimited by a line feed.

Semicolon {;} Rows are delimited by a semicolon.

Colon {:} Rows are delimited by a colon.

Comma {,} Rows are delimited by a comma.

Tab {t} Rows are delimited by a tab.

Ver tical bar {|} Rows are delimited by a vertical bar.

Column delimiter
Select from the list of available column delimiters, or enter the delimiter text.

VA L UE DESC RIP T IO N

{CR}{LF} Columns are delimited by a carriage return-line feed


combination.

{CR} Columns are delimited by a carriage return.

{LF} Columns are delimited by a line feed.

Semicolon {;} Columns are delimited by a semicolon.

Colon {:} Columns are delimited by a colon.

Comma {,} Columns are delimited by a comma.

Tab {t} Columns are delimited by a tab.


VA L UE DESC RIP T IO N

Ver tical bar {|} Columns are delimited by a vertical bar.

Refresh
View the effect of changing the delimiters to skip by clicking Refresh . This button only becomes visible after
you have changed other connection options.
Preview rows
View sample data in the flat file, divided into columns and rows by using the options selected.
Reset Columns
Remove all but the original columns by clicking Reset Columns .
Format = Fixed Width
Font
Select the font in which to display the preview data.
Source data columns
Adjust the width of the row by sliding the vertical red row marker, and adjust the width of the columns by
clicking the ruler at the top of the preview window
Row width
Specify the length of the row before adding delimiters for individual columns. Or, drag the vertical red line in
the preview window to mark the end of the row. The row width value is automatically updated.
Reset Columns
Remove all but the original columns by clicking Reset Columns .
Format = Ragged Right

NOTE
Ragged right files are files in which every column has a fixed width, except for the last column. It is delimited by the
row delimiter.

Font
Select the font in which to display the preview data.
Source data columns
Adjust the width of the row by sliding the vertical red row marker, and adjust the width of the columns by
clicking the ruler at the top of the preview window
Row delimiter
Select from the list of available row delimiters, or enter the delimiter text.

VA L UE DESC RIP T IO N

{CR}{LF} Rows are delimited by a carriage return-line feed


combination.

{CR} Rows are delimited by a carriage return.

{LF} Rows are delimited by a line feed.

Semicolon {;} Rows are delimited by a semicolon.


VA L UE DESC RIP T IO N

Colon {:} Rows are delimited by a colon.

Comma {,} Rows are delimited by a comma.

Tab {t} Rows are delimited by a tab.

Ver tical bar {|} Rows are delimited by a vertical bar.

Reset Columns
Remove all but the original columns by clicking Reset Columns .

Flat File Connection Manager Editor (Advanced Page)


Use the Advanced page of the Flat File Connection Manager Editor dialog box to set properties that
specify how Integration Services reads and writes data in flat files. You can change the names of columns in
the flat file, and set properties that include data type and delimiters for each column in the file.
By default, the length of string columns is 50 characters. You can resize the length of these columns to
prevent truncation of data or excess column width. You can also update other metadata to enable
compatibility with destination columns. For example, you might change the data type of a column that
contains only integer data to a numeric data type, such as DT_I2. You can make these modifications manually,
or you can click the Select Types button to use the Suggest Column Types dialog box to evaluate sample
data and make some of these changes for you automatically.
To learn more about the Flat File connection manager, see Flat File Connection Manager.
Options
Connection manager name
Provide a unique name for the flat file connection manager in the workflow. The name provided will be
displayed within SSIS Designer.
Description
Describe the connection manager. As a best practice, describe the connection manager in terms of its
purpose, to make packages self-documenting and easier to maintain.
Configure the proper ties of each column
Select a column in the left pane to view its properties in the right pane. See the following table for a
description of data type properties. Some of the properties listed are configurable only for some flat file
formats.

P RO P ERT Y DESC RIP T IO N

ColumnType Denotes whether the column is delimited, fixed width, or


ragged right. This property is read-only. Ragged right files
are files in which every column has a fixed width, except for
the last column. It is delimited by the row delimiter.

OutputColumnWidth Specify a value to be stored as a count of bytes; for


Unicode files, this value corresponds to a count of
characters. In the Data Flow task, this value is used to set
the output column width for the Flat File source. In the
object model, the name of this property is
MaximumWidth.
P RO P ERT Y DESC RIP T IO N

DataType Select from the list of available data types. For more
information, see Integration Services Data Types.

TextQualified Indicate whether text data is surrounded by text qualifier


characters such as quote characters.

True: Text data in the flat file is qualified. False: Text data in
the flat file is NOT qualified.

Name Provide a descriptive column name. If you do not enter a


name, Integration Services automatically creates a name in
the format Column 0, Column 1 and so forth.

DataScale Specify the scale of numeric data. Scale refers to the


number of decimal places. For more information, see
Integration Services Data Types.

ColumnDelimiter Select from the list of available column delimiters. Choose


delimiters that are not likely to occur in the text. This value
is ignored for fixed-width columns.

{CR}{LF} . Columns are delimited by a carriage return-line


feed combination.

{CR} . Columns are delimited by a carriage return.

{LF} . Columns are delimited by a line feed.

Semicolon {;} . Columns are delimited by a semicolon.

Colon {:} . Columns are delimited by a colon.

Comma {,} . Columns are delimited by a comma.

Tab {t} . Columns are delimited by a tab.

Ver tical bar {|} . Columns are delimited by a vertical bar.

DataPrecision Specify the precision of numeric data. Precision refers to


the number of digits. For more information, see
Integration Services Data Types.

InputColumnWidth Specify a value to be stored as a count of bytes; for


Unicode files, this will display as a count of characters. This
value is ignored for delimited columns.

Note In the object model, the name of this property is


ColumnWidth.

New
Add a new column by clicking New . By default, the New button adds a new column at the end of the list. The
button also has the following options, available in the drop-down list.

VA L UE DESC RIP T IO N

Add Column Add a new column at the end of the list.


VA L UE DESC RIP T IO N

Inser t Before Insert a new column before the selected column.

Inser t After Insert a new column after the selected column.

Delete
Select a column, and then remove it by clicking Delete .
Suggest Types
Use the Suggest Column Types dialog box to evaluate sample data in the file and to obtain suggestions
for the data type and length of each column. For more information, see Suggest Column Types Dialog Box UI
Reference.

Flat File Connection Manager Editor (Preview Page)


Use the Preview node of the Flat File Connection Manager Editor dialog box to view the contents of the
source file in a tabular format.
To learn more about the Flat File connection manager, see Flat File Connection Manager.
Options
Connection manager name
Provide a unique name for the Flat File connection in the workflow. The name provided will be displayed
within SSIS Designer.
Description
Describe the connection. As a best practice, describe the connection in terms of its purpose, to make
packages self-documenting and easier to maintain.
Data rows to skip
Specify how many rows to skip at the beginning of the flat file.
Refresh
View the effect of changing the number of rows to skip by clicking Refresh . This button only becomes
visible after you have changed other connection options.
Preview rows
View sample data in the flat file, divided into columns and rows according to the options you have selected.
FTP Connection Manager
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
An FTP connection manager enables a package to connect to a File Transfer Protocol (FTP) server. The FTP task
that SQL Server Integration Services includes uses this connection manager.
When you add an FTP connection manager to a package, Integration Services creates a connection manager that
can be resolved as an FTP connection at run time, sets the connection manager properties, and adds the
connection manager to the Connections collection on the package.
The ConnectionManagerType property of the connection manager is set to FTP .
You can configure the FTP connection manager in the following ways:
Specify a server name and server port.
Specify anonymous access, or provide a user name and a password for basic authentication.

IMPORTANT
The FTP connection manager supports only anonymous authentication and basic authentication. It does not
support Windows Authentication.

Set the time-out, number of retries, and the amount of data to copy at a time.
Indicate whether the FTP connection manager uses passive or active mode.
Depending on the configuration of the FTP site to which the FTP connection manager connects, you may need to
change the following default values of the connection manager:
The server port is set to 21. You should specify the port that the FTP site listens to.
The user name is set to "anonymous". You should provide the credentials that the FTP site requires.

Active/Passive Modes
An FTP connection manager can send and receive files using either active mode or passive mode. In active mode,
the server initiates the data connection, and in passive mode, the client initiates the data connection.

Configuration of the FTP Connection Manager


You can set properties through SSIS Designer or programmatically.
For information about the properties that you can set in SSIS Designer, see .
FTP Connection Manager Edit or

For information about configuring a connection manager programmatically, see ConnectionManager and
Adding Connections Programmatically.

FTP Connection Manager Editor


Use the FTP Connection Manager Editor dialog box to specify properties for connecting to an FTP server.
IMPORTANT
The FTP connection manager supports only anonymous authentication and basic authentication. It does not support
Windows Authentication.

To learn more about the FTP connection manager, see FTP Connection Manager.
Options
Ser ver name
Provide the name of the FTP server.
Ser ver por t
Specify the port number on the FTP server to use for the connection. The default value of this property is 21 .
User name
Provide a user name to access the FTP server. The default value of this property is anonymous .
Password
Provide the password to access the FTP server.
Time-out (in seconds)
Specify the number of seconds the task takes before timing out. A value of 0 indicates an infinite amount of time.
The default value of this property is 60 .
Use passive mode
Specify whether the server or the client initiates the connection. The server initiates the connection in active
mode, and the client activates the connection in passive mode. The default value of this property is active
mode .
Retries
Specify the number of times the task attempts to make a connection. A value of 0 indicates no limit to the
number of attempts.
Chunk size (in KB)
Provide a chunk size in kilobytes for transmitting data.
Test Connection
After configuring the FTP Connection Manager, confirm that the connection is viable by clicking Test
Connection .

See Also
FTP Task
Integration Services (SSIS) Connections
Hadoop Connection Manager
11/2/2020 • 4 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
The Hadoop Connection Manager enables a SQL Server Integration Services (SSIS) package to connect to a
Hadoop cluster, by using the values you specify for the properties.

Configure the Hadoop Connection Manager


1. In the Add SSIS Connection Manager dialog box, select Hadoop > Add . The Hadoop Connection
Manager Editor dialog box opens.
2. To configure related Hadoop cluster information, choose the WebHCat or WebHDFS tab in the left pane.
3. If you enable the WebHCat option to invoke a Hive or Pig job on Hadoop, do the following:
a. For WebHCat Host , enter the server that hosts the WebHCat service.
b. For WebHCat Por t , enter the port of the WebHCat service, which by default is 50111.
c. Select the Authentication method for accessing the WebHCat service. The available values are
Basic and Kerberos .
d. For WebHCat User , enter the User authorized to access WebHCat.
e. If you select Kerberos authentication, enter the user's Password and Domain .
4. If you enable the WebHDFS option to copy data from or to HDFS, do the following:
a. For WebHDFS Host , enter the server that hosts the WebHDFS service.
b. For WebHDFS Por t , enter the port of the WebHDFS service, which by default is 50070.
c. Select the Authentication method for accessing the WebHDFS service. The available values are
Basic and Kerberos .
d. For WebHDFS User , enter the user authorized to access HDFS.
e. If you select Kerberos authentication, enter the user's Password and Domain .
5. Select Test Connection . (Only the connection that you enabled is tested.)
6. Select OK to close the dialog box.

Connect with Kerberos authentication


There are two options to set up the on-premises environment so you can use Kerberos authentication with the
Hadoop Connection Manager. You can choose the option that better fits your circumstances.
Option 1: Join the SSIS computer to the Kerberos realm
Option 2: Enable mutual trust between the Windows domain and the Kerberos realm
Option 1: Join the SSIS computer to the Kerberos realm
Requirements:
The gateway computer needs to join the Kerberos realm, and can't join any Windows domain.
How to configure:
On the SSIS computer:
1. Run the Ksetup utility to configure the Kerberos Key Distribution Center (KDC) server and realm.
The computer must be configured as a member of a workgroup, because a Kerberos realm is different from
a Windows domain. Set the Kerberos realm and add a KDC server, as shown in the following example.
Replace REALM.COM with your own respective realm, as needed.

C:> Ksetup /setdomain REALM.COM`


C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>

After running these commands, restart the computer.


2. Verify the configuration with Ksetup command. The output should look like the following sample:

C:> Ksetup
default realm = REALM.COM (external)
REALM.com:
kdc = <your_kdc_server_address>

Option 2: Enable mutual trust between the Windows domain and the Kerberos realm
Requirements:
The gateway computer must join a Windows domain.
You need permission to update the domain controller's settings.
How to configure:

NOTE
Replace REALM.COM and AD.COM in the following tutorial with your own respective realm and domain controller, as
needed.

On the KDC server:


1. Edit the KDC configuration in the krb5.conf file. Allow KDC to trust the Windows domain by referring to
the following configuration template. By default, the configuration is located at /etc/krb5.conf .
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = REALM.COM
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true

[realms]
REALM.COM = {
kdc = node.REALM.COM
admin_server = node.REALM.COM
}
AD.COM = {
kdc = windc.ad.com
admin_server = windc.ad.com
}

[domain_realm]
.REALM.COM = REALM.COM
REALM.COM = REALM.COM
.ad.com = AD.COM
ad.com = AD.COM

[capaths]
AD.COM = {
REALM.COM = .
}

Restart the KDC service after configuration.


2. Prepare a principal named krbtgt/[email protected] on the KDC server. Use the following
command:
Kadmin> addprinc krbtgt/[email protected]

3. In the hadoop.security.auth_to_local HDFS service configuration file, add


RULE:[1:$1@$0](.*@AD.COM)s/@.*// .

On the domain controller:


1. Run the following Ksetup commands to add a realm entry:

C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>


C:> ksetup /addhosttorealmmap HDFS-service-FQDN REALM.COM

2. Establish trust from the Windows domain to the Kerberos realm. In the following example, [password] is
the password for the principal krbtgt/[email protected] .
C:> netdom trust REALM.COM /Domain: AD.COM /add /realm /password:[password]

3. Select an encryption algorithm to use with Kerberos.


a. Go to Ser ver Manager > Group Policy Management > Domain . From there, go to Group
Policy Objects > Default or Active Domain Policy > Edit .
b. In the Group Policy Management Editor pop-up window, go to Computer Configuration >
Policies > Windows Settings . From there, go to Security Settings > Local Policies > Security
Options . Configure Network security: Configure Encr yption types allowed for Kerberos .
c. Select the encryption algorithm you want to use to connect to the KDC. Typically you can select any
of the options.

d. Use the Ksetup command to specify the encryption algorithm to be used on the specific realm.
C:> ksetup /SetEncTypeAttr REALM.COM DES-CBC-CRC DES-CBC-MD5 RC4-HMAC-MD5 AES128-CTS-HMAC-SHA1-96
AES256-CTS-HMAC-SHA1-96

4. To use the Kerberos principal in the Windows domain, create the mapping between the domain account
and Kerberos principal.
a. Go to Administrative tools > Active Director y Users and Computers .
b. Configure advanced features by selecting View > Advanced Features .
c. Locate the account to which you want to create mappings, right-click to view Name Mappings , and
then select the Kerberos Names tab.
d. Add a principal from the realm.

On the gateway computer:


Run the following Ksetup commands to add a realm entry.
C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>
C:> ksetup /addhosttorealmmap HDFS-service-FQDN REALM.COM

See also
Hadoop Hive Task
Hadoop Pig Task
Hadoop File System Task
HTTP Connection Manager
11/2/2020 • 3 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
An HTTP connection enables a package to access a Web server by using HTTP to send or receive files. The Web
Service task that SQL Server Integration Services includes uses this connection manager.
When you add an HTTP connection manager to a package, Integration Services creates a connection manager
that will resolve to an HTTP connection at run time, sets the connection manager properties, and adds the
connection manager to the Connections collection on the package.
The ConnectionManagerType property of the connection manager is set to HTTP.
You can configure the HTTP connection manager the following ways:
Use credentials. If the connection manager uses credentials, its properties include the user name,
password, and domain.

IMPORTANT
The HTTP connection manager supports only anonymous authentication and basic authentication. It does not
support Windows Authentication.

Use a client certificate. If the connection manager uses a client certificate, its properties include the
certificate name.
Provide a time-out for connecting to the server and a chunk size for writing data.
Use a proxy server. The proxy server can also be configured to use credentials and to bypass the proxy
server and use local addresses instead.

Configuration of the HTTP Connection Manager


You can set properties through SSIS Designer or programmatically.
For information about configuring a connection manager programmatically, see ConnectionManager.

HTTP Connection Manager Editor (Server Page)


Use the Ser ver tab of the HTTP Connection Manager Editor dialog box to configure the HTTP Connection
Manager by specifying properties such as the URL and security credentials. An HTTP connection enables a
package to access a Web server by using HTTP to send or receive files. After configuring the HTTP Connection
Manager, you can also test the connection.

IMPORTANT
The HTTP connection manager supports only anonymous authentication and basic authentication. It does not support
Windows Authentication.

To learn more about the HTTP connection manager, see HTTP Connection Manager. To learn more about a
common usage scenario for the HTTP Connection Manager, see Web Service Task.
Options
Ser ver URL
Type the URL for the server.
If you plan to use the Download WSDL button on the General page of the Web Ser vice Task Editor to
download a WSDL file, type the URL for the WSDL file. This URL ends with "?wsdl".
Use credentials
Specify whether you want the HTTP Connection Manager to use the user's security credentials for
authentication.
User name
If the HTTP Connection Manager uses credentials, you must specify a user name, password, and domain.
Password
If the HTTP Connection Manager uses credentials, you must specify a user name, password, and domain.
Domain
If the HTTP Connection Manager uses credentials, you must specify a user name, password, and domain.
Use client cer tificate
Specify whether you want the HTTP Connection Manager to use a client certificate for authentication.
Cer tificate
Select a certificate from the list by using the Select Cer tificate dialog box. The text box displays the name
associated with this certificate.
Time-out (in seconds)
Provide a time-out for connecting to the Web server. The default value of this property is 30 seconds.
Chunk size (in KB)
Provide a chunk size for writing data.
Test Connection
After configuring the HTTP Connection Manager, confirm that the connection is viable by clicking Test
Connection .

HTTP Connection Manager Editor (Proxy Page)


Use the Proxy tab of the HTTP Connection Manager Editor dialog box to configure the HTTP Connection
Manager to use a proxy server. An HTTP connection enables a package to access a Web server by using HTTP to
send or receive files.
To learn more about the HTTP connection manager, see HTTP Connection Manager. To learn more about a
common usage scenario for the HTTP Connection Manager, see Web Service Task.
Options
Use proxy
Specify whether you want the HTTP Connection Manager to connect through a proxy server.
Proxy URL
Type the URL for the proxy server.
Bypass proxy on local
Specify whether you want the HTTP Connection Manager to bypass the proxy server for local addresses.
Use credentials
Specify whether you want the HTTP Connection Manager to use security credentials for the proxy server.
User name
If the HTTP Connection Manager uses credentials, you must specify a user name, password, and domain.
Password
If the HTTP Connection Manager uses credentials, you must specify a user name, password, and domain.
Domain
If the HTTP Connection Manager uses credentials, you must specify a user name, password, and domain.
Proxy bypass list
The list of addresses for which you want to bypass the proxy server.
Add
Type an address for which you want to bypass the proxy server.
Remove
Select an address, and then remove it by clicking Remove .

See Also
Web Service Task
Integration Services (SSIS) Connections
MSMQ Connection Manager
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
An MSMQ connection manager enables a package to connect to a message queue that uses Message Queuing
(also known as MSMQ). The Message Queue task that Microsoft SQL Server Integration Services includes uses
an MSMQ connection manager.
When you add an MSMQ connection manager to a package, Integration Services creates a connection manager
that will resolve to an MSMQ connection at run time, sets the connection manager properties, and adds the
connection manager to the Connections collection on the package. The ConnectionManagerType property
of the connection manager is set to MSMQ .
You can configure an MSMQ connection manager in the following ways:
Provide a connection string.
Provide the path of the message queue to connect to.
The format of the path depends on the type of queue, as shown in the following table.

Q UEUE T Y P E SA M P L E PAT H

Public <computer name>\<queue name>

Private <computer name>\Private$\<queue name>

You can use a period (.) to represent the local computer.

Configuration of the MSMQ Connection Manager


You can set properties through SSIS Designer or programmatically.
For more information about the properties that you can set in SSIS Designer, see .
MSMQ Connection Manager Edit or

For information about configuring a connection manager programmatically, see ConnectionManager and
Adding Connections Programmatically.

MSMQ Connection Manager Editor


Use the MSMQ Connection Manager dialog box to specify the path to a Message Queuing (also known as
MSMQ) message queue.
To learn more about the MSMQ connection manager, see MSMQ Connection Manager.

NOTE
The MSMQ connection manager supports local public and private queues and remote public queues. It does not support
remote private queues. For a workaround that uses the Script Task, see Sending to a Remote Private Message Queue with
the Script Task.

Options
Name
Provide a unique name for the MSMQ connection manager in the workflow. The name provided will be
displayed within SSIS Designer.
Description
Describe the connection manager. As a best practice, describe the connection manager in terms of its purpose, to
make packages self-documenting and easier to maintain.
Path
Type the complete path of the message queue. The format of the path depends on the type of queue.

Q UEUE T Y P E SA M P L E PAT H

Public <computer name>\<queue name>

Private <computer name>\Private$\<queue name>

You can use "." to represent the local computer.


Test
After configuring the MSMQ connection manager, confirm that the connection is viable by clicking Test .

See Also
Message Queue Task
Integration Services (SSIS) Connections
Multiple Files Connection Manager
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
A Multiple Files connection manager enables a package to reference existing files and folders, or to create files
and folders at run time.

NOTE
The built-in tasks and data flow components in Integration Services do not use the Multiple Files connection manager.
However, you can use this connection manager in the Script task or Script component. For information about how to use
connection managers in the Script task, see Connecting to Data Sources in the Script Task. For information about how to
use connection managers in the Script component, see Connecting to Data Sources in the Script Component.

Usage Types of the Multiple Files Connection Manager


The FileUsageType property of the Multiple Files connection manager specifies how the connection is used. The
Multiple Files connection manager can create files, create folders, use existing files, and use existing folders.
The following table lists the values of FileUsageType .

VA L UE DESC RIP T IO N

0 Multiple Files connection manager uses an existing file.

1 Multiple Files connection manager creates a file.

2 Multiple Files connection manager uses an existing folder.

3 Multiple Files connection manager creates a folder.

Configuration of the Multiple Files Connection Manager


When you add a Multiple Files connection manager to a package, Integration Services creates a connection
manager that will resolve to a Multiple Files connection at run time, sets the Multiple Files connection properties,
and adds the Multiple Files connection to the Connections collection of the package.
The ConnectionManagerType property of the connection manager is set to MULTIFILE .
You can configure a Multiple Files connection manager in the following ways:
Specify the usage type of files and folders.
Specify files and folders.
If using multiple files or folders, specify the order in which the files and folders are accessed.
If the Multiple Files connection manager references multiple files and folders, the paths of the files and folders are
separated by the pipe (|) character. The ConnectionString property of the connection manager has the following
format:
<path>|<path>
You can also specify multiple files or folders using wildcard characters. For example, to reference all the text files
on the C drive, the value of the ConnectionString property can be set to C:\*.txt.
You can set properties through SSIS Designer or programmatically.
For more information about the properties that you can set in SSIS Designer, see Add File Connection Manager
Dialog Box UI Reference.
For information about configuring a connection manager programmatically, see ConnectionManager and Adding
Connections Programmatically.
Multiple Flat Files Connection Manager
11/2/2020 • 12 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
A Multiple Flat Files connection manager enables a package to access data in multiple flat files. For example, a
Flat File source can use a Multiple Flat Files connection manager when the Data Flow task is inside a loop
container, such as the For Loop container. On each loop of the container, the Flat File source loads data from
the next file name that the Multiple Flat Files connection manager provides.
When you add a Multiple Flat Files connection manager to a package, SQL Server Integration Services creates
a connection manager that will resolve to a Multiple Flat Files connection at run time, sets the properties on
the Multiple Flat Files connection manager, and adds the Multiple Flat Files connection manager to the
Connections collection of the package.
The ConnectionManagerType property of the connection manager is set to MULTIFL ATFILE .
You can configure the Multiple Flat Files connection manager in the following ways:
Specify the files, locale, and code page to use. The locale is used to interpret locale-sensitive data such
as dates, and the code page is used to convert string data to Unicode.
Specify the file format. You can use a delimited, fixed width, or ragged right format.
Specify a header row, data row, and column delimiters. Column delimiters can be set at the file level
and overwritten at the column level.
Indicate whether the first row in the files contains column names.
Specify a text qualifier character. Each column can be configured to recognize a text qualifier.
Set properties such as the name, data type, and maximum width on individual columns.
When the Multiple Flat Files connection manager references multiple files, the paths of the files are separated
by the pipe (|) character. The ConnectionString property of the connection manager has the following
format:
<path>|<path>
You can also specify multiple files by using wildcard characters. For example, to reference all the text files on
the C drive, the value of the ConnectionString property can be set to C:\*.txt.
If a Multiple Flat Files connection manager references multiple files, all the files must have the same format.
By default, the Multiple Flat Files connection manager sets the length of string columns to 50 characters. In the
Multiple Flat Files Connection Manager Editor dialog box, you can evaluate sample data and
automatically resize the length of these columns to prevent truncation of data or excess column width. Unless
you resize the column length in a Flat File source or a transformation, the column length remains the same
throughout the data flow. If these columns map to destination columns that are narrower, warnings appear in
the user interface, and at run time, errors may occur due to data truncation. You can resize the columns to be
compatible with the destination columns in the Flat File connection manager, the Flat File source, or a
transformation. To modify the length of output columns, you set the Length property of the output column
on the Input and Output Proper ties tab in the Advanced Editor dialog box.
If you update column lengths in the Multiple Flat Files connection manager after you have added and
configured the Flat File source that uses the connection manager, you do not have to manually resize the
output columns in the Flat File source. When you open the Flat File Source dialog box, the Flat File source
provides an option to synchronize the column metadata.

Configuration of the Multiple Flat Files Connection Manager


You can set properties through SSIS Designer or programmatically.
For information about configuring a connection manager programmatically, see ConnectionManager and
Adding Connections Programmatically.

Multiple Flat Files Connection Manager Editor (General Page)


Use the General page of the Multiple Flat Files Connection Manager Editor dialog box to select a group
of files that have the same data format, and to specify their data format. A multiple flat files connection
enables a package to connect to a group of text files that have the same format.
To learn more about the Multiple Flat Files connection manager, see Multiple Flat Files Connection Manager.
Options
Connection manager name
Provide a unique name for the Multiple Flat Files connection in the workflow. The name provided will be
displayed within SSIS Designer.
Description
Describe the connection. As a best practice, describe the connection in terms of its purpose, to make packages
self-documenting and easier to maintain.
File names
Type the path and file names to use in the Multiple Flat Files connection. You can specify multiple files by using
wildcard characters, as in the example "C:\*.txt", or by using the vertical pipe character (|) to separate multiple
file names. All files must have the same data format.
Browse
Browse the file names to use in the Multiple Flat Files connection. You can select multiple files. All files must
have the same data format.
Locale
Specify the location to provide information for ordering and for date and time conversion.
Unicode
Indicate whether to use Unicode. Using Unicode precludes specifying a code page.
Code page
Specify the code page for non-Unicode text.
Format
Indicate whether to use delimited, fixed width, or ragged right formatting. All files must have the same data
format.

VA L UE DESC RIP T IO N

Delimited Columns are separated by delimiters, specified on the


Columns page.

Fixed width Columns have a fixed width, specified by dragging marker


lines on the Columns page.
VA L UE DESC RIP T IO N

Ragged right Ragged right files are files in which every column has a fixed
width, except for the last column, which is delimited by the
row delimiter, specified on the Columns page.

Text qualifier
Specify the text qualifier to use. For example, you can specify to enclose text with quotation marks.
Header row delimiter
Select from the list of delimiters for header rows, or enter the delimiter text.

VA L UE DESC RIP T IO N

{CR}{LF} The header row is delimited by a carriage return-line feed


combination.

{CR} The header row is delimited by a carriage return.

{LF} The header row is delimited by a line feed.

Semicolon {;} The header row is delimited by a semicolon.

Colon {:} The header row is delimited by a colon.

Comma {,} The header row is delimited by a comma.

Tab {t} The header row is delimited by a tab.

Ver tical bar {|} The header row is delimited by a vertical bar.

Header rows to skip


Specify the number of header rows to skip, if any.
Column names in the first data row
Indicate whether to expect or provide column names in the first data row.

Multiple Flat Files Connection Manager Editor (Columns Page)


Use the Columns node of the Multiple Flat Files Connection Manager Editor dialog box to specify the
row and column information, and to preview the first selected file.
To learn more about the Multiple Flat Files connection manager, see Multiple Flat Files Connection Manager.
Static Options
Connection manager name
Provide a unique name for the Multiple Flat Files connection in the workflow. The name provided will be
displayed within SSIS Designer.
Description
Describe the connection. As a best practice, describe the connection in terms of its purpose, to make packages
self-documenting and easier to maintain.
Flat File Format Dynamic Options
Format = Delimited
Row delimiter
Select from the list of available row delimiters, or enter the delimiter text.

VA L UE DESC RIP T IO N

{CR}{LF} Rows are delimited by a carriage return-line feed


combination.

{CR} Rows are delimited by a carriage return.

{LF} Rows are delimited by a line feed.

Semicolon {;} Rows are delimited by a semicolon.

Colon {:} Rows are delimited by a colon.

Comma {,} Rows are delimited by a comma.

Tab {t} Rows are delimited by a tab.

Ver tical bar {|} Rows are delimited by a vertical bar.

Column delimiter
Select from the list of available column delimiters, or enter the delimiter text.

VA L UE DESC RIP T IO N

{CR}{LF} Columns are delimited by a carriage return-line feed


combination.

{CR} Columns are delimited by a carriage return.

{LF} Columns are delimited by a line feed.

Semicolon {;} Columns are delimited by a semicolon.

Colon {:} Columns are delimited by a colon.

Comma {,} Columns are delimited by a comma.

Tab {t} Columns are delimited by a tab.

Ver tical bar {|} Columns are delimited by a vertical bar.

Reset Columns
Remove all but the original columns by clicking Reset Columns .
Format = Fixed Width
Font
Select the font in which to display the preview data.
Source data columns
Adjust the width of the row by sliding the vertical row marker, and adjust the width of the columns by clicking
the ruler at the top of the preview window
Row width
Specify the length of the row before adding delimiters for individual columns. Or, drag the vertical line in the
preview window to mark the end of the row. The row width value is automatically updated.
Reset Columns
Remove all but the original columns by clicking Reset Columns .
Format = Ragged Right

NOTE
Ragged right files are those in which every column has a fixed width, except for the last column. It is delimited by the
row delimiter.

Font
Select the font in which to display the preview data.
Source data columns
Adjust the width of the row by sliding the vertical row marker, and adjust the width of the columns by clicking
the ruler at the top of the preview window
Row delimiter
Select from the list of available row delimiters, or enter the delimiter text.

VA L UE DESC RIP T IO N

{CR}{LF} Rows are delimited by a carriage return-line feed


combination.

{CR} Rows are delimited by a carriage return.

{LF} Rows are delimited by a line feed.

Semicolon {;} Rows are delimited by a semicolon.

Colon {:} Rows are delimited by a colon.

Comma {,} Rows are delimited by a comma.

Tab {t} Rows are delimited by a tab.

Ver tical bar {|} Rows are delimited by a vertical bar.

Reset Columns
Remove all but the original columns by clicking Reset Columns .

Multiple Flat Files Connection Manager Editor (Advanced Page)


Use the Advanced page of the Multiple Flat Files Connection ManagerEditor dialog box to set
properties such as data type and delimiters of each column in the text files to which the flat file connection
manager connects.
By default, the length of string columns is 50 characters. You can evaluate sample data and automatically
resize the length of these columns to prevent truncation of data or excess column width. You can also update
other metadata to enable compatibility with destination columns. For example, you might change the data
type of a column that contains only integer data to a numeric data type, such as DT_I2.
To learn more about the Multiple Flat Files connection manager, see Multiple Flat Files Connection Manager.
Options
Connection manager name
Provide a unique name for the Multiple Flat Files connection manager in the workflow. The name provided will
be displayed within the Connection Managers area of SSIS Designer.
Description
Describe the connection manager. As a best practice, describe the connection manager in terms of its purpose,
to make packages self-documenting and easier to maintain.
Configure the proper ties of each column
Select a column in the left pane to view its properties in the right pane. See the following table for a
description of data type properties. Some of the properties listed are configurable only for some flat file
formats.

P RO P ERT Y DESC RIP T IO N

ColumnType Denotes whether the column is delimited, fixed width, or


ragged right. This property is read-only. Ragged right files
are files in which every column has a fixed width, except for
the last column, which is terminated by the row delimiter.

OutputColumnWidth Specify a value to be stored as a count of bytes; for


Unicode files, this will display as a count of characters. In
the Data Flow task, this value is used to set the output
column width for the Flat File source.

Note: In the object model, the name of this property is


MaximumWidth.

DataType Select from the list of available data types. For more
information, see Integration Services Data Types.

TextQualified Indicate whether text data is qualified using a text qualifier


character:

True : Text data in the flat file is qualified.

False : Text data in the flat file is not qualified.

Name Provide a column name. The default is a numbered list of


columns; however, you can choose any unique, descriptive
name.

DataScale Specify the scale of numeric data. Scale refers to the


number of decimal places. For more information, see
Integration Services Data Types.
P RO P ERT Y DESC RIP T IO N

ColumnDelimiter Select from the list of available column delimiters. Choose


delimiters that are not likely to occur in the text. This value
is ignored for fixed-width columns.

{CR}{LF} - columns are delimited by a carriage return-line


feed combination

{CR} - columns are delimited by a carriage return

{LF} - columns are delimited by a line feed

Semicolon {;} - columns are delimited by a semicolon

Colon {:} - columns are delimited by a colon

Comma {,} - columns are delimited by a comma

Tab {t} - columns are delimited by a tab

Ver tical bar {|} - columns are delimited by a vertical bar

DataPrecision Specify the precision of numeric data. Precision refers to the


number of digits. For more information, see Integration
Services Data Types.

InputColumnWidth Specify a value to be stored as a count of bytes; for


Unicode files, this will display as a count of characters. This
value is ignored for delimited columns.

Note In the object model, the name of this property is


ColumnWidth.

New
Add a new column by clicking New . By default, the New button adds a new column at the end of the list. The
button also has the following options, available in the dropdown list.

VA L UE DESC RIP T IO N

Add Column Add a new column at the end of the list.

Inser t Before Insert a new column before the selected column.

Inser t After Insert a new column after the selected column.

Delete
Select a column, and then remove it by clicking Delete .
Suggest Types
Use the Suggest Column Types dialog box to evaluate sample data in the first selected file and to obtain
suggestions for the data type and length of each column. For more information, see Suggest Column Types
Dialog Box UI Reference.

Multiple Flat Files Connection Manager Editor (Preview Page)


Use the Preview page of the Multiple Flat Files ConnectionManager Editor dialog box to view the
contents of the first selected source file divided into columns as you have defined them.
To learn more about the Multiple Flat Files connection manager, see Multiple Flat Files Connection Manager.
Options
Connection manager name
Provide a unique name for the Multiple Flat Files connection in the workflow. The name provided will be
displayed within the Connection Managers area of SSIS Designer.
Description
Describe the connection. As a best practice, describe the connection in terms of its purpose, to make packages
self-documenting and easier to maintain.
Data rows to skip
Specify how many rows to skip at the beginning of the flat file.
Preview rows
View sample data in the first selected flat file, divided into columns and rows by using the options selected.

See Also
Flat File Source
Flat File Destination
Integration Services (SSIS) Connections
OData Connection Manager
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
Connect to an OData data source with an OData connection manager. An OData Source component uses an OData
connection manager to connect to an OData data source and consume data from the service. For more info, see
OData Source.

Adding an OData Connection Manager to an SSIS Package


You can add a new OData connection manager to an SSIS package in three ways:
Click the New... button in the OData Source Editor
Right-click the Connection Managers folder in Solution Explorer , and then click New Connection
Manager . Select ODATA for Connection manager type .
Right-click in the Connection Managers pane at the bottom of the package designer, and then select New
Connection . Select ODATA for Connection manager type .

Connection Manager Authentication


The OData connection manager supports five modes of authentication.
Windows Authentication
Basic Authentication (with username and password)
Microsoft Dynamics AX Online (with username and password)
Microsoft Dynamics CRM Online (with username and password)
Microsoft Online Services (with username and password)
For anonymous access, select the Windows Authentication option.
To connect to Microsoft Dynamics AX Online or Microsoft Dynamics CRM online, you can't use the Microsoft
Online Ser vices authentication option. You also can't use any option that's configured for multi-factor
authentication. Currently Modern authentication is not supported.
Specifying and Securing Credentials
If the OData service requires basic authentication, you can specify a username and password in the . The values you
O Data Connection Manager Edit or

enter in the editor are persisted in the package. The password value is encrypted according to the package
protection level.
There are several ways to parameterize the username and password values or to store them outside the package.
For example, you can use parameters, or set the connection manager properties directly when you run the package
from SQL Server Management Studio.

OData Connection Manager Properties


The following list describes the properties of the OData connection manager.
P RO P ERT Y DESC RIP T IO N

Url URL to the service document.

UserName User name to use for authentication, if required.

Password Password to use for authentication, if required.

ConnectionString Includes other properties of the connection manager.

OData Connection Manager Editor


Use the OData Connection Manager Editor dialog box to add a connection or edit an existing connection to an
OData data source.
Options
Connection manager name
Name of the connection manager.
Ser vice document location
URL for the OData service. For example: https://services.odata.org/V3/Northwind/Northwind.svc/.
Authentication
Select one of the following options:
Windows Authentication . For anonymous access, select this option.
Basic Authentication
Microsoft Dynamics AX Online for Dynamics AX Online
Microsoft Dynamics CRM Online for Dynamics CRM Online
Microsoft Online Ser vices for Microsoft Online Services
If you select an option other than Windows Authentication, enter the user name and password .
To connect to Microsoft Dynamics AX Online or Microsoft Dynamics CRM online, you can't use the Microsoft
Online Ser vices authentication option. You also can't use any option that's configured for multi-factor
authentication.
Test Connection
Click this button to test the connection to the OData source.
ODBC Connection Manager
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
An ODBC connection manager enables a package to connect to a variety of database management systems using
the Open Database Connectivity specification (ODBC).
When you add an ODBC connection to a package and set the connection manager properties, SQL Server
Integration Services creates a connection manager and adds the connection manager to the Connections
collection of the package. At run time the connection manager is resolved as a physical ODBC connection.
The ConnectionManagerType property of the connection manager is set to ODBC .
You can configure the ODBC connection manager in the following ways:
Provide a connection string that references a user or system data source name.
Specify the server to connect to.
Indicate whether the connection is retained at run time.

Configuration of the ODBC Connection Manager


You can set properties through SSIS Designer or programmatically.
For more information about the properties that you can set in SSIS Designer, click one of the following topic:
O DBC Connection Manager UI Ref erence

For information about configuring a connection manager programmatically, see ConnectionManager and Adding
Connections Programmatically.

ODBC Connection Manager UI Reference


Use the Configure ODBC Connection Manager dialog box to add a connection to an ODBC data source.
To learn more about the ODBC connection manager, see ODBC Connection Manager.
Options
Data connections
Select an existing ODBC connection manager from the list.
Data connection proper ties
View properties and values for the selected ODBC connection manager.
New
Create an ODBC connection manager by using the Connection Manager dialog box. This dialog box also lets
you create a new ODBC data source if it is required.
Delete
Select a connection, and then delete it by using the Delete button.

See Also
Integration Services (SSIS) Connections
OLE DB connection manager
11/2/2020 • 7 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
An OLE DB connection manager enables a package to connect to a data source by using an OLE DB provider.
For example, an OLE DB connection manager that connects to SQL Server can use the Microsoft OLE DB
Provider for SQL Server.

NOTE
The SQL Server Native Client 11.0 OLEDB provider doesn't support the new connection string key words
(MultiSubnetFailover=True) for multi-subnet failover clustering. For more information, see the SQL Server Release
Notes.

NOTE
If the data source is Microsoft Office Excel 2007 or Microsoft Office Access 2007, the data source requires a different
data provider than earlier versions of Excel or Access. For more information, see Connect to an Excel Workbook and
Connect to an Access Database.

Several SQL Server Integration Services tasks and data flow components use an OLE DB connection manager.
For example, the OLE DB source and OLE DB destination use this connection manager to extract and load
data. The Execute SQL task can use this connection manager to connect to a SQL Server database to run
queries.
You can also use the OLE DB connection manager to access OLE DB data sources in custom tasks written in
unmanaged code that uses a language such as C++.
When you add an OLE DB connection manager to a package, Integration Services creates a connection
manager that resolves to an OLE DB connection at runtime, sets the connection manager properties, and
adds the connection manager to the Connections collection on the package.
The ConnectionManagerType property of the connection manager is set to OLEDB .
Configure the OLE DB connection manager in the following ways:
Provide a specific connection string configured to meet the requirements of the selected provider.
Depending on the provider, include the name of the data source to connect to.
Provide security credentials as appropriate for the selected provider.
Indicate whether the connection created from the connection manager is retained at runtime.

Log calls and troubleshoot connections


You can log the calls that the OLE DB connection manager makes to external data providers. You can then
troubleshoot the connections that the OLE DB connection manager makes to external data sources. To log the
calls that the OLE DB connection manager makes to external data providers, enable package logging, and
select the Diagnostic event at the package level. For more information, see Troubleshooting Tools for
Package Execution.
Configure the OLE DB connection manager
You can set properties through SSIS Designer, or programmatically. For more information about the
properties that you can set in SSIS Designer, see . For information about configuring a connection manager
Conf igure O LE DB Connection Manager

programmatically, see the documentation for T:Microsoft.SqlSer ver.Dts.Runtime.ConnectionManager


class in the Developer Guide.
Configure OLE DB connection manager
Use the Configure OLE DB Connection Manager dialog box to add a connection to a data source. This
connection can be new, or a copy of an existing connection.

NOTE
If the data source is Microsoft Office Excel 2007, the data source requires a different connection manager than earlier
versions of Excel. For more information, see Connect to an Excel Workbook.
If the data source is Microsoft Office Access 2007, the data source requires a different OLE DB provider than earlier
versions of Access. For more information, see Connect to an Access Database.

To learn more about the OLE DB connection manager, see OLE DB Connection Manager.
Options
Data connections
Select an existing OLE DB data connection from the list.
Data connection proper ties
View properties and values for the selected OLE DB data connection.
New
Create an OLE DB data connection by using the Connection Manager dialog box.
Delete
Select a data connection, and then delete it by selecting Delete .
Managed identities for Azure resources authentication
When running SSIS packages on Azure-SSIS integration runtime in Azure Data Factory, use the managed
identity associated with your data factory for Azure SQL Database or Managed Instance authentication. The
designated factory can access and copy data from or to your database by using this identity.

NOTE
When you use Azure Active Directory (Azure AD) authentication (including managed identity authentication) to
connect to Azure SQL Database or Managed Instance, you might encounter a problem related to package execution
failure or unexpected behavior change. For more information, see Azure AD features and limitations.

To use managed identity authentication for Azure SQL Database, follow these steps to configure your
database:
1. Provision an Azure Active Directory administrator for your Azure SQL server on the Azure portal, if
you haven't already done so. The Azure AD administrator can be an Azure AD user or Azure AD group.
If you grant the group with managed identity an admin role, skip step 2 and 3. The administrator will
have full access to the database.
2. Create contained database users for the data factory managed identity. Connect to the database from
or to which you want to copy data by using tools like SSMS, with an Azure AD identity that has at least
ALTER ANY USER permission. Run the following T-SQL:
CREATE USER [your data factory name] FROM EXTERNAL PROVIDER;

3. Grant the data factory managed identity needed permissions, as you normally do for SQL users and
others. Refer to Database-Level Roles for appropriate roles. Run the following code. For more options,
see this document.

EXEC sp_addrolemember [role name], [your data factory name];

To use managed identity authentication for Azure SQL Managed Instance, follow these steps to configure
your database:
1. Provision an Azure Active Directory administrator for your managed instance on the Azure portal, if
you haven't already done so. The Azure AD administrator can be an Azure AD user or Azure AD group.
If you grant the group with managed identity an admin role, skip step 2-4. The administrator will have
full access to the database.
2. Create logins for the data factory managed identity. In SQL Server Management Studio (SSMS),
connect to your Managed Instance using a SQL Server account that is a sysadmin . In master
database, run the following T-SQL:

CREATE LOGIN [your data factory name] FROM EXTERNAL PROVIDER;

3. Create contained database users for the data factory managed identity. Connect to the database from
or to which you want to copy data, run the following T-SQL:

CREATE USER [your data factory name] FROM EXTERNAL PROVIDER;

4. Grant the data factory managed identity needed permissions as you normally do for SQL users and
others. Run the following code. For more options, see this document.

ALTER ROLE [role name e.g., db_owner] ADD MEMBER [your data factory name];

Then configure OLE DB provider for the OLE DB connection manager. Here are the options to do this:
Configure at design time. In SSIS Designer, double-click the OLE DB connection manager to open
the Connection Manager window. In the Provider drop-down list, select Microsoft OLE DB
Driver for SQL Ser ver .

NOTE
Other providers in the drop-down list might not support managed identity authentication.

Configure at runtime. When you run the package via SQL Server Management Studio (SSMS) or
Azure Data Factory Execute SSIS Package activity, find the connection manager property
ConnectionString for the OLE DB connection manager. Update the connection property Provider to
MSOLEDBSQL (that is, Microsoft OLE DB Driver for SQL Server).

Data Source=serverName;Initial Catalog=databaseName;Provider=MSOLEDBSQL;...

Finally, configure managed identity authentication for the OLE DB connection manager. Here are the options
to do this:
Configure at design time. In SSIS Designer, right-click the OLE DB connection manager, and select
Proper ties . Update the property ConnectUsingManagedIdentity to True .

NOTE
Currently, the connection manager property ConnectUsingManagedIdentity doesn't take effect (indicating
that managed identity authentication doesn't work) when you run SSIS package in SSIS Designer or Microsoft
SQL Server.

Configure at runtime. When you run the package via SSMS or an Execute SQL Package activity,
find the OLE DB connection manager, and update its property ConnectUsingManagedIdentity to True .

NOTE
In Azure-SSIS integration runtime, all other authentication methods (for example, integrated security and
password) preconfigured on the OLE DB connection manager are overridden when managed identity
authentication is used to establish a database connection.

NOTE
To configure managed identity authentication on existing packages, the preferred way is to rebuild your SSIS project
with the latest SSIS Designer at least once. Redeploy that SSIS project to your Azure-SSIS integration runtime, so that
the new connection manager property ConnectUsingManagedIdentity is automatically added to all OLE DB
connection managers in your SSIS project. The alternative way is to directly use a property override with property path
\Package.Connections[{the name of your connection
manager}].Proper ties[ConnectUsingManagedIdentity] at runtime.

See also
OLE DB Source
OLE DB Destination
Execute SQL Task
Integration Services (SSIS) Connections
SAP BW Connection Manager
11/2/2020 • 5 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
The SAP BW connection manager is the connection manager component of the Microsoft Connector 1.1 for SAP
BW. Thus, the SAP BW connection manager provides the connectivity to an SAP Netweaver BW version 7 system
that the source and destination components of the Microsoft Connector 1.1 for SAP BW need. (The SAP BW source
and destination that are part of the Microsoft Connector 1.1 for SAP BW package are the only Integration Services
components that use the SAP BW connection manager.)

IMPORTANT
The documentation for the Microsoft Connector 1.1 for SAP BW assumes familiarity with the SAP Netweaver BW
environment. For more information about SAP Netweaver BW, or for information about how to configure SAP Netweaver
BW objects and processes, see your SAP documentation.

When you add an SAP BW connection manager to a package, the ConnectionManagerType property of the
connection manager is set to SAPBI .

Configuring the SAP BW Connection Manager


You can configure the SAP BW connection manager in the following ways:
Provide the client, user name, password, and language for the connection.
Choose whether to connect to a single application server or to a group of load-balanced servers.
Provide the host and system number for a single application server, or provide the message server, group,
and SID for a group of load-balanced servers.
Enable custom logging of RFC function calls for the components of the Microsoft Connector 1.1 for SAP
BW. (This logging is separate from the optional logging that you can enable on Integration Services
packages.) To enable logging of RFC function calls, you specify a directory in which to store the log files that
are created before and after each RFC function call. (This logging feature creates many log files in XML
format. As these log files also contain all the rows of data that are transferred, these log files may consume
a large amount of disk space.) If you do not select a log directory, logging is not enabled.

IMPORTANT
If the data that is transferred contains sensitive information, the log files will also contain that sensitive information.

Use the values that you have entered to test the connection.
If you do not know all the values that are required to configure the connection manager, you might have to ask
your SAP administrator.
For a walkthrough that demonstrates how to configure and use the SAP BW connection manager, source, and
destination, see the white paper, Using SQL Server 2008 Integration Services with SAP BI 7.0. This white paper also
shows how to configure the required objects in SAP BW.
Using the SSIS Designer to Configure the Source
For more information about the properties of the SAP BW connection manager that you can set in SSIS Designer,
click the following topic:
SAP BW Connection Manager Edit or

SAP BW Connection Manager Editor


Use the SAP BW Connection Manager Editor to specify the properties to use to connect to an SAP Netweaver
BW version 7 system.
The SAP BW connection manager provides connectivity to an SAP Netweaver BW 7 system for use by the SAP BW
source or destination. To learn more about the SAP BW connection manager of the Microsoft Connector 1.1 for
SAP BW, see SAP BW Connection Manager.

IMPORTANT
The documentation for the Microsoft Connector 1.1 for SAP BW assumes familiarity with the SAP Netweaver BW
environment. For more information about SAP Netweaver BW, or for information about how to configure SAP Netweaver
BW objects and processes, see your SAP documentation.

To open the SAP BW Connection Manager Editor


1. In SQL Server Data Tools (SSDT), open the Integration Services package that contains the SAP BW
connection manager.
2. In the Connection Managers area on the Control Flow tab, do one of the following steps:
Double-click the SAP BW connection manager.
-or-
Right-click the SAP BW connection manager, and then select Edit .
Options

NOTE
If you do not know all the values that are required to configure the connection manager, you might have to ask your SAP
administrator.

Client
Specify the client number of the system.
Language
Specify the language that the system uses. For example, specify EN for English.
User name
Specify the user name that will be used to connect to the system.
Password
Specify the password that will be used with the user name.
Use single application ser ver
Connect to a single application server.
To connect to a group of load-balanced servers, use the Use load balancing option instead.
Host
If connecting to a single application server, specify the host name.
NOTE
This option is only available if you have selected the Use single application ser ver option.

System number
If connecting to a single application server, specify the system number.

NOTE
This option is only available if you have selected the Use single application ser ver option.

Use load balancing


Connect to a group of load-balanced servers.
To connect to a single application server, use the Use single application ser ver option instead.
Message ser ver
If connecting to a group of load-balanced servers, specify the name of the message server.

NOTE
This option is only available if you have selected the Use load balancing option.

Group
If connecting to a group of load-balanced servers, specify the name of the server group name.

NOTE
This option is only available if you have selected the Use load balancing option.

SID
If connecting to a group of load-balanced servers, specify the System ID for the connection.

NOTE
This option is only available if you have selected the Use load balancing option.

Log director y
Enable logging for the components of the Microsoft Connector 1.1 for SAP BW.
To enable logging, specify a directory for the log files that are created before and after each RFC function call. (This
logging feature creates many log files in XML format. As these log files also contain all the rows of data that are
transferred, these log files may consume a large amount of disk space.)

IMPORTANT
If the data that is transferred contains sensitive information, the log files will also contain that sensitive information.

To specify the log directory, you can either enter the directory path manually, or click Browse and browse to the
log directory.
If you do not select a log directory, logging is not enabled.
Browse
Browse to select a folder for the log directory.
Test Connection
Test the connection using the values that you have provided. After clicking Test Connection , a message box
appears and indicates whether the connection succeeded or failed.

See Also
Microsoft Connector for SAP BW Components
SMTP Connection Manager
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
An SMTP connection manager enables a package to connect to a Simple Mail Transfer Protocol (SMTP) server.
The Send Mail task that Microsoft SQL Server Integration Services includes uses an SMTP connection manager.
When using Microsoft Exchange as the SMTP server, you may need to configure the SMTP connection manager
to use Windows Authentication. Exchange servers may be configured to not allow unauthenticated SMTP
connections.

Configuration the SMTP Connection Manager


When you add an SMTP connection manager to a package, Integration Services creates a connection manager
that will resolve to an SMTP connection at run time, sets the connection manager properties, and adds the
connection manager to the Connections collection on the package. The ConnectionManagerType property of
the connection manager is set to SMTP .
You can configure an SMTP connection manager in the following ways:
Provide a connection string.
Specify the name of an SMTP server.
Specify the authentication method to use.

IMPORTANT
The SMTP connection manager supports only anonymous authentication and Windows Authentication. It does not
support basic authentication.

Specify whether to encrypt communication using Transport Layer Security (TLS), previously known as
Secure Sockets Layer (SSL), when sending e-mail messages.
You can set properties through SSIS Designer or programmatically.
For more information about the properties that you can set in SSIS Designer, see .
SMTP Connection Manager Edit or

For information about configuring a connection manager programmatically, see ConnectionManager and Adding
Connections Programmatically.

SMTP Connection Manager Editor


Use the SMTP Connection Manager Editor dialog box to specify a Simple Mail Transfer Protocol (SMTP)
server.
To learn more about the SMTP connection manager, see SMTP Connection Manager.
Options
Name
Provide a unique name for the connection manager.
Description
Describe the connection manager. As a best practice, describe the connection manager in terms of its purpose, to
make packages self-documenting and easier to maintain.
SMTP ser ver
Provide the name of the SMTP server.
Use Windows Authentication
Select to send mail using an SMTP server that uses Windows Authentication to authenticate access to the server.

IMPORTANT
The SMTP connection manager supports only anonymous authentication and Windows Authentication. It does not
support basic authentication.

NOTE
When using Microsoft Exchange as the SMTP server, you may need to set Use Windows Authentication to True .
Exchange servers may be configured to disallow unauthenticated SMTP connections.

Enable Secure Sockets Layer (SSL)


Select to encrypt communication using TLS/SSL when sending e-mail messages.
SMO Connection Manager
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
An SMO connection manager enables a package to connect to a SQL Management Object (SMO) server. The
transfer tasks that SQL Server Integration Services includes use an SMO connection manager. For example, the
Transfer Logins task that transfers SQL Server logins uses an SMO connection manager.
When you add an SMO connection manager to a package, Integration Services creates a connection manager
that will resolve to an SMO connection at run time, sets the connection manager properties, and adds the
connection manager to the Connections collection on the package. The ConnectionManagerType property
of the connection manager is set to SMOSer ver .
You can configure an SMO connection manager in the following ways:
Specify the name of a server on which SQL Server is installed.
Select the authentication mode for connecting to the server.

Configuration of the SMO Connection Manager


You can set properties through SSIS Designer or programmatically.
For more information about the properties that you can set in SSIS Designer, see .
SMO Connection Manager Edit or

For information about configuring a connection manager programmatically, see ConnectionManager and
Adding Connections Programmatically.

SMO Connection Manager Editor


Use the SMO Connection Manager Editor to configure a SQL Server connection for use by the various tasks
that transfer SQL Server objects.
To learn more about the SMO connection manager, see SMO Connection Manager.
Options
Ser ver name
Type the name of the SQL Server instance or select the server name from the list.
Refresh
Refresh the list of available SQL Server instances that can be detected on the network.
Use Windows Authentication
Use Windows Authentication to connect to the selected SQL Server instance.
Use SQL Ser ver Authentication
Use SQL Server Authentication to connect to the selected SQL Server instance.
User name
If you have selected SQL Server authentication, enter the SQL Server user name.
Password
If you have selected SQL Server authentication, enter the password.
Test Connection
Test the connection as configured.

See Also
Integration Services (SSIS) Connections
SQL Server Compact Edition Connection Manager
11/2/2020 • 3 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
A SQL Server Compact connection manager enables a package to connect to a SQL Server Compact database.
The SQL Server Compact destination that Microsoft SQL Server Integration Services includes uses this
connection manager to load data into a table in a SQL Server Compact database.

NOTE
On a 64-bit computer, you must run packages that connect to SQL Server Compact data sources in 32-bit mode. The
SQL Server Compact provider that Integration Services uses to connect to SQL Server Compact data sources is available
only in a 32-bit version.

Configuration the SQL Server Compact Edition Connection Manager


When you add a SQL Server Compact connection manager to a package, Integration Services creates a
connection manager that will resolve to a SQL Server Compact connection at run time, sets the connection
manager properties, and adds the connection manager to the Connections collection on the package.
The ConnectionManagerType property of the connection manager is set to SQLMOBILE .
You can configure the SQL Server Compact connection manager in the following ways:
Provide a connection string that specifies the location of the SQL Server Compact database.
Provide a password for a password-protected database.
Specify the server on which the database is stored.
Indicate whether the connection that is created from the connection manager is retained at run time.
You can set properties through SSIS Designer or programmatically.
For information about configuring a connection manager programmatically, see ConnectionManager and
Adding Connections Programmatically.

SQL Server Compact Edition Connection Manager Editor (Connection


Page)
Use the SQL Ser ver Compact Edition Connection Manager dialog box to specify properties for connecting
to a SQL Server Compact database.
To learn more about the SQL Server Compact Edition connection manager, see SQL Server Compact Edition
Connection Manager.
Options
Enter the database file name and path
Enter the path and filename for the SQL Server Compact database.
Browse
Locate the desired SQL Server Compact database file by using the Select SQL Ser ver Compact Edition
database dialog box.
Enter the database password
Enter the password for the SQL Server Compact database.

SQL Server Compact Edition Connection Manager Editor (All Page)


Use the SQL Ser ver Compact Edition Connection Manager dialog box to specify properties for connecting
to a SQL Server Compact database.
To learn more about the SQL Server Compact Edition connection manager, see SQL Server Compact Edition
Connection Manager.
Options
AutoShrink Threshold
Specify the amount of free space, as a percentage, that is allowed in the SQL Server Compact database before
the autoshrink process runs.
Default Lock Escalation
Specify the number of database locks that the SQL Server Compact database acquires before it tries to escalate
locks.
Default Lock Timeout
Specify the default interval, in milliseconds, that a transaction will wait for a lock.
Flush Inter val
Specify the interval, in seconds, between committed transactions to flush data to disk.
Locale Identifier
Specify the Locale ID (LCID) of the SQL Server Compact database.
Max Buffer Size
Specify the maximum amount of memory, in kilobytes, that SQL Server Compact uses before flushing data to
disk.
Max Database Size
Specify the maximum size, in megabytes, of the SQL Server Compact database.
Mode
Specify the file mode in which to open the SQL Server Compact database. The default value for this property is
Read Write .
The Mode option has four values, as described in the following table.

VA L UE DESC RIP T IO N

Read Only Specifies read-only access to the database.

Read Write Specifies read/write permission to the database.

Exclusive Specifies exclusive access to the database.

Shared Read Specifies that other users can read from the database at the
same time.

Persist Security Info


Specify whether security information is returned as part of the connection string. The default value for this
option is False .
Temp File Director y
Specify the location of the SQL Server Compact temporary database file.
Data Source
Specify the name of the SQL Server Compact database.
Password
Enter the password for the SQL Server Compact database.
WMI Connection Manager
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
A WMI connection manager enables a package to use Windows Management Instrumentation (WMI) to manage
information in an enterprise environment. The Web Service task that Microsoft SQL Server Integration Services
includes uses a WMI connection manager.
When you add a WMI connection manager to a package, Integration Services creates a connection manager that
will resolve to a WMI connection at run time, sets the connection manager properties, and adds the connection
manager to the Connections collection on the package. The ConnectionManagerType property of the
connection manager is set to WMI .

Configuration of the WMI Connection Manager


You can configure a WMI connection manager in the following ways:
Specify the name of a server.
Specify a namespace on the server.
Select the authentication mode for connecting to the server.
You can set properties through SSIS Designer or programmatically.
For information about the properties that you can set in SSIS Designer, see .
WMI Connection Manager Edit or

For information about configuring a connection manager programmatically, see ConnectionManager and
Adding Connections Programmatically.

WMI Connection Manager Editor


Use the WMI Connection Manager dialog box to specify a Microsoft Windows Management Instrumentation
(WMI) connection to a server.
To learn more about the WMI connection manager, see WMI Connection Manager.
Options
Name
Provide a unique name for the connection manager.
Description
Describe the connection manager. As a best practice, describe the connection manager in terms of its purpose, to
make packages self-documenting and easier to maintain.
Ser ver name
Provide the name of the server to which you want to make the WMI connection.
Namespace
Specify the WMI namespace.
Use Windows authentication
Select to use Windows Authentication. If you use Windows Authentication, you do not need to provide a user
name or password for the connection.
User name
If you do not use Windows Authentication, you must provide a user name for the connection.
Password
If you do not use Windows Authentication, you must provide the password for the connection.
Test
Test the connection manager settings.

See Also
Web Service Task
Integration Services (SSIS) Connections
Control Flow
11/2/2020 • 3 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
A package consists of a control flow and, optionally, one or more data flows. SQL Server Integration Services
provides three different types of control flow elements: containers that provide structures in packages, tasks
that provide functionality, and precedence constraints that connect the executables, containers, and tasks into
an ordered control flow.
For more information, see Precedence Constraints, Integration Services Containers, and Integration Services
Tasks.
The following diagram shows a control flow that has one container and six tasks. Five of the tasks are defined
at the package level, and one task is defined at the container level. The task is inside a container.

The Integration Services architecture supports the nesting of containers, and a control flow can include
multiple levels of nested containers. For example, a package could contain a container such as a Foreach Loop
container, which in turn could contain another Foreach Loop container and so on.
Event handlers also have control flows, which are built using the same kinds of control flow elements.

Control Flow Implementation


You create the control flow in a package by using the Control Flow tab in SSIS Designer. When the Control
Flow tab is active, the Toolbox lists the tasks and containers that you can add to the control flow.
The following diagram shows the control flow of a simple package in the control flow designer. The control
flow shown in the diagram is made up of three package-level tasks and one package-level container that
contains three tasks. The tasks and container are connected by using precedence constraints.
Creating a control flow includes the following tasks:
Adding containers that implement repeating workflows in a package or divide a control flow into
subsets.
Adding tasks that support data flow, prepare data, perform workflow and business intelligence
functions, and implement script.
Integration Services includes a variety of tasks that you can use to create control flow that meets the
business requirements of the package. If the package has to work with data, the control flow must
include at least one Data Flow task. For example, a package might have to extract data, aggregate data
values, and then write the results to a data source. For more information, see Integration Services Tasks
and Add or Delete a Task or a Container in a Control Flow.
Connecting containers and tasks into an ordered control flow by using precedence constraints.
After you add a task or container to the design surface of the Control Flow tab, SSIS Designer
automatically adds a connector to the item. If a package includes two or more items, tasks or containers,
you can join them into a control flow by dragging their connectors from one item to another.
The connector between two items represents a precedence constraint. A precedence constraint defines
the relationship between the two connected items. It specifies the order in which tasks and containers
are executed at run time and the conditions under which tasks and containers run. For example, a
precedence constraint can specify that a task must succeed for the next task in the control flow to run.
For more information, see Precedence Constraints.
Adding connection managers.
Many tasks require a connection to a data source, and you have to add the connection managers that
the task requires to the package. Depending on the enumerator type it uses, the Foreach Loop container
may also require a connection manager. You can add the connection managers as you construct the
control flow item by item or before you start to construct the control flow. For more information, see
Integration Services (SSIS) Connections and Create Connection Managers.
SSIS Designer also includes many design-time features that you can use to manage the design surface and
make the control flow self-documenting.

Related Tasks
Add or Delete a Task or a Container in a Control Flow
Set the Properties of a Task or Container
Group or Ungroup Components
Add or Delete a Task or a Container in a Control
Flow
11/2/2020 • 4 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
When you are working in the control flow designer, the Toolbox in SSIS Designer lists the tasks that
Integration Services provides for building control flow in a package. For more information about the
Toolbox, see SSIS Toolbox.
A package can include multiple instances of the same task. Each instance of a task is uniquely identified in
the package, and you can configure each instance differently.
If you delete a task, the precedence constraints that connect the task to other tasks and containers in the
control flow are also deleted.
The following procedures describe how to add or delete a task or container in the control flow of a package.

Add a task or a container to a control flow


1. In SQL Server Data Tools (SSDT), open the Integration Services project that contains the package you
want.
2. In Solution Explorer, double-click the package to open it.
3. Click the Control Flow tab.
4. To open the Toolbox , click Toolbox on the View menu.
5. Expand Control Flow Items and Maintenance Tasks .
6. Drag tasks and containers from the Toolbox to the design surface of the Control Flow tab.
7. Connect a task or container within the package control flow by dragging its connector to another
component in the control flow.
8. To save the updated package, click Save Selected Items on the File menu.

Delete a task or a container from a control flow


1. In SQL Server Data Tools (SSDT), open the Integration Services project that contains the package you
want.
2. In Solution Explorer, double-click the package to open it. Do one of the following:
Click the Control Flow tab, right-click the task or container that you want to remove, and
then click Delete .
Open Package Explorer . From the Executables folder, right-click the task or container that
you want to remove, and then click Delete .
3. To save the updated package, click Save Selected Items on the File menu.

Set the properties of a task or container


You can set most properties of tasks and containers by using the Proper ties window. The exceptions are
properties of task collections and properties that are too complex to set by using the Proper ties window.
For example, you cannot configure the enumerator that the Foreach Loop container uses in the Proper ties
window. You must use a task or container editor to set these complex properties. Most task and container
editors have multiple nodes and each node contains related properties. The name of the node indicates the
subject of the properties that the node contains.
The following procedures describe how to set the properties of a task or container by using either the
Proper ties windows, or the corresponding task or container editor.
Set the properties of a task or container with the Properties window
1. In SQL Server Data Tools (SSDT), open the Integration Services project that contains the package you
want.
2. In Solution Explorer, double-click the package to open it.
3. Click the Control Flow tab.
4. On the design surface of the Control Flow tab, right-click the task or container, and then click
Proper ties .
5. In the Proper ties window, update the property value.

NOTE
Most properties can be set by typing a value directly in the text box, or by selecting a value from a list.
However, some properties are more complex and have a custom property editor. To set the property, click in
the text box, and then click the build (...) button to open the custom editor.

6. Optionally, create property expressions to dynamically update the properties of the task or container.
For more information, see Add or Change a Property Expression.
7. To save the updated package, click Save Selected Items on the File menu.
Set the properties of a task or container with the task or container editor
1. In SQL Server Data Tools (SSDT), open the Integration Services project that contains the package you
want.
2. In Solution Explorer, double-click the package to open it.
3. Click the Control Flow tab.
4. On the design surface of the Control Flow tab, right-click the task or container, and then click Edit
to open the corresponding task or container editor.
For information about how to configure the For Loop container, see Configure a For Loop Container.
For information about how to configure the Foreach Loop container, see Configure a Foreach Loop
Container.

NOTE
The Sequence container has no custom editor.

5. If the task or container editor has multiple nodes, click the node that contains the property that you
want to set.
6. Optionally, click Expressions and, on the Expressions page, create property expressions to
dynamically update the properties of the task or container. For more information, see Add or Change
a Property Expression.
7. Update the property value.
8. To save the updated package, click Save Selected Items on the File menu.

See Also
Integration Services Tasks
Integration Services Containers
Control Flow
Integration Services Containers
11/2/2020 • 5 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
Containers are objects in SQL Server Integration Services that provide structure to packages and services to
tasks. They support repeating control flows in packages, and they group tasks and containers into meaningful
units of work. Containers can include other containers in addition to tasks.
Packages use containers for the following purposes:
Repeat tasks for each element in a collection, such as files in a folder, schemas, or SQL Server Management
Objects (SMO) objects. For example, a package can run Transact-SQL statements that reside in multiple
files.
Repeat tasks until a specified expression evaluates to false . For example, a package can send a different e-
mail message seven times, one time for every day of the week.
Group tasks and containers that must succeed or fail as a unit. For example, a package can group tasks that
delete and add rows in a database table, and then commit or roll back all the tasks when one fails.

Container Types
Integration Services provides four types of containers for building packages. The following table lists the
container types.

C O N TA IN ER DESC RIP T IO N

Foreach Loop Container Runs a control flow repeatedly by using an enumerator.

For Loop Container Runs a control flow repeatedly by testing a condition.

Sequence Container Groups tasks and containers into control flows that are
subsets of the package control flow.

Task Host Container Provides services to a single task.

Packages and events handlers are also types of containers. For information see Integration Services (SSIS)
Packages and Integration Services (SSIS) Event Handlers.
Summary of Container Properties
All container types have a set of properties in common. If you create packages using the graphical tools that
Integration Services provides, the Properties window lists the following properties for the Foreach Loop, For
Loop, and Sequence containers. The task host container properties are configured as part of configuring the task
that the task host encapsulates. You set the Task Host properties when you configure the task.

P RO P ERT Y DESC RIP T IO N


P RO P ERT Y DESC RIP T IO N

DelayValidation A Boolean value that indicates whether validation of the


container is delayed until run time. The default value for this
property is False .

For more information, see DelayValidation.

Description The container description. The property contains a string, but


may be blank.

For more information, see Description.

Disable A Boolean value that indicates whether the container runs.


The default value for this property is False .

For more information, see Disable.

DisableEventHandlers A Boolean value that indicates whether the event handlers


associated with the container run. The default value for this
property is False .

FailPackageOnFailure A Boolean value that specifies whether the package fails if an


error occurs in the container. The default value for this
property is False .

For more information, see FailPackageOnFailure.

FailParentOnFailure A Boolean value that specifies whether the parent container


fails if an error occurs in the container. The default value for
this property is False .

For more information, see FailParentOnFailure.

ForcedExecutionValue If ForceExecutionValue is set to True , the object that


contains the optional execution value for the container. The
default value of this property is 0 .

For more information, see ForcedExecutionValue.

ForcedExecutionValueType The data type of ForcedExecutionValue . The default value


of this property is Int32 .

ForceExecutionResult A value that specifies the forced result of running the


package or container. The values are None , Success , Failure ,
and Completion . The default value for this property is
None .

For more information, see ForceExecutionResult.

ForceExecutionValue A Boolean value that specifies whether the optional execution


value of the container should be forced to contain a
particular value. The default value of this property is False .

For more information, see ForceExecutionValue.


P RO P ERT Y DESC RIP T IO N

ID The container GUID, which is assigned when the package is


created. This property is read-only.

ID.

IsolationLevel The isolation level of the container transaction. The values are
Unspecified , Chaos , ReadUncommitted ,
ReadCommitted , RepeatableRead , Serializable , and
Snapshot . The default value of this property is Serializable .
For more information, see IsolationLevel.

LocaleID A Microsoft Win32 locale. The default value of this property is


the locale of the operating system on the local computer.

For more information, see LocaleID.

LoggingMode A value that specifies the logging behavior of the container.


The values are Disabled , Enabled , and UseParentSetting .
The default value of this property is UseParentSetting . For
more information, see DTSLoggingMode.

MaximumErrorCount The maximum number of errors that can occur before a


container stops running. The default value of this property is
1.

For more information, see MaximumErrorCount.

Name The name of the container.

For more information, see Name.

TransactionOption The transactional participation of the container. The values


are NotSuppor ted , Suppor ted , Required . The default
value of this property is Suppor ted . For more information,
see DTSTransactionOption.

To learn about all the properties that are available to Foreach Loop, For Loop, Sequence, and Task Host containers
when configure them programmatically, see the following Integration Services API topics:
T:Microsoft.SqlServer.Dts.Runtime.ForEachLoop
T:Microsoft.SqlServer.Dts.Runtime.ForLoop
T:Microsoft.SqlServer.Dts.Runtime.Sequence
T:Microsoft.SqlServer.Dts.Runtime.TaskHost

Objects that Extend Container Functionality


Containers include control flows that consist of executables and precedence constraints, and may use event
handlers, and variables. The task host container is an exception: because the task host container encapsulates a
single task, it does not use precedence constraints.
Executables
Executables refers to the container-level tasks and any containers within the container. An executable can be one
of the tasks and containers that Integration Services provides or a custom task. For more information, see
Integration Services Tasks.
Precedence Constraints
Precedence constraints link containers and tasks within the same parent container into an ordered control flow.
For more information, see Precedence Constraints.
Event Handlers
Event handlers at the container level respond to events raised by the container or the objects it includes. For more
information, see Integration Services (SSIS) Event Handlers.
Variables
Variables that are used in containers include the container-level system variables that Integration Services
provides and the user-defined variables that the container uses. For more information, see Integration Services
(SSIS) Variables.

Break Points
When you set a breakpoint on a container and the break condition is Break when the container recevies the
OnVariableValueChanged event , define the variable in the container scope.

See Also
Control Flow
Foreach Loop Container
11/2/2020 • 28 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
The Foreach Loop container defines a repeating control flow in a package. The loop implementation is similar to
Foreach looping structure in programming languages. In a package, looping is enabled by using a Foreach
enumerator. The Foreach Loop container repeats the control flow for each member of a specified enumerator.
SQL Server Integration Services provides the following enumerator types:
Foreach ADO enumerator to enumerate rows in tables. For example, you can get the rows in an ADO
recordset.
The Recordset destination saves data in memory in a recordset that is stored in a package variable of
Object data type. You typically use a Foreach Loop container with the Foreach ADO enumerator to
process one row of the recordset at a time. The variable specified for the Foreach ADO enumerator must
be of Object data type. For more information about the Recordset destination, see Use a Recordset
Destination.
Foreach ADO.NET Schema Rowset enumerator to enumerate the schema information about a data source.
For example, you can enumerate and get a list of the tables in the AdventureWorks2012 SQL Server
database.
Foreach File enumerator to enumerate files in a folder. The enumerator can traverse subfolders. For
example, you can read all the files that have the *.log file name extension in the Windows folder and its
subfolders. Note that the order in which the files are retrieved cannot be specified.
Foreach From Variable enumerator to enumerate the enumerable object that a specified variable contains.
The enumerable object can be an array, an ADO.NET DataTable , an Integration Services enumerator, and
so on. For example, you can enumerate the values of an array that contains the name of servers.
Foreach Item enumerator to enumerate items that are collections. For example, you can enumerate the
names of executables and working directories that an Execute Process task uses.
Foreach Nodelist enumerator to enumerate the result set of an XML Path Language (XPath) expression.
For example, this expression enumerates and gets a list of all the authors in the classical period:
/authors/author[@period='classical'] .

Foreach SMO enumerator to enumerate SQL Server Management Objects (SMO) objects. For example,
you can enumerate and get a list of the views in a SQL Server database.
Foreach HDFS File Enumerator to enumerate HDFS files in the specified HDFS location.
Foreach Azure Blob enumerator to enumerate blobs in a blob container in Azure Storage.
Foreach ADLS File enumerator to enumerate files in a directory in Azure Data Lake Store.
Foreach Data Lake Storage Gen2 File enumerator to enumerate files in a directory in Azure Data Lake
Store Gen2.
The following diagram shows a Foreach Loop container that has a File System task. The Foreach loop uses the
Foreach File enumerator, and the File System task is configured to copy a file. If the folder that the enumerator
specifies contains four files, the loop repeats four times and copies four files.
You can use a combination of variables and property expressions to update the property of the package object
with the enumerator collection value. First you map the collection value to a user-defined variable, and then you
implement a property expression on the property that uses the variable. For example, the collection value of the
Foreach File enumerator is mapped to a variable called MyFile and the variable is then used in the property
expression for the Subject property of a Send Mail task. When the package runs, the Subject property is updated
with the name of a file each time that the loop repeats. For more information, see Use Property Expressions in
Packages.
Variables that are mapped to the enumerator collection value can also be used in expressions and scripts.
A Foreach Loop container can include multiple tasks and containers, but it can use only one type of enumerator.
If the Foreach Loop container includes multiple tasks, you can map the enumerator collection value to multiple
properties of each task.
You can set a transaction attribute on the Foreach Loop container to define a transaction for a subset of the
package control flow. In this way, you can manage transactions at the level of the Foreach Loop instead of the
package level. For example, if a Foreach Loop container repeats a control flow that updates dimensions and fact
tables in a star schema, you can configure a transaction to ensure that all fact tables are updated successfully, or
none are updated. For more information, see Integration Services Transactions.

Enumerator Types
Enumerators are configurable, and you must provide different information, depending on the enumerator.
The following table summarizes the information each enumerator type requires.

EN UM ERATO R C O N F IGURAT IO N REQ UIREM EN T S

Foreach ADO Specify the ADO object source variable and the enumerator
mode. The variable must be of Object data type.

Foreach ADO.NET Schema Rowset Specify the connection to a database and the schema to
enumerate.

Foreach File Specify a folder and the files to enumerate, the format of the
file name of the retrieved files, and whether to traverse
subfolders.

Foreach From Variable Specify the variable that contains the objects to enumerate.

Foreach Item Define the items in the Foreach Item collection, including
columns and column data types.

Foreach Nodelist Specify the source of the XML document and configure the
XPath operation.

Foreach SMO Specify the connection to a database and the SMO objects to
enumerate.
EN UM ERATO R C O N F IGURAT IO N REQ UIREM EN T S

Foreach HDFS File Enumerator Specify a folder and the files to enumerate, the format of the
file name of the retrieved files, and whether to traverse
subfolders.

Foreach Azure Blob Specify the Azure blob container that containers blobs to be
enumerated.

Foreach ADLS File Specify the Azure Data Lake Store directory that contains the
files to be enumerated.

Foreach Data Lake Storage Gen2 File Specify the Azure Data Lake Storage Gen2 directory that
contains the files to be enumerated, along with other
options.

Add enumeration to a control flow with a Foreach Loop container


Integration Services includes the Foreach Loop container, a control flow element that makes it simple to include
a looping construct that enumerates files and objects in the control flow of a package. For more information, see
Foreach Loop Container.
The Foreach Loop container provides no functionality; it provides only the structure in which you build the
repeatable control flow, specify an enumerator type, and configure the enumerator. To provide container
functionality, you must include at least one task in the Foreach Loop container. For more information, see
Integration Services Tasks.
The Foreach Loop container can include a control flow with multiple tasks and other containers. Adding tasks
and containers to a Foreach Loop container is similar to adding them to a package, except you drag the tasks and
containers to the Foreach Loop container instead of to the package. If the Foreach Loop container includes more
than one task or container, you can connect them using precedence constraints just as you do in a package. For
more information, see Precedence Constraints.
Add and configure a Foreach Loop container
1. Add the Foreach Loop container to the package. For more information, see Add or Delete a Task or a
Container in a Control Flow.
2. Add tasks and containers to the Foreach Loop container. For more information, see Add or Delete a Task
or a Container in a Control Flow.
3. Connect tasks and containers in the Foreach Loop container using precedence constraints. For more
information, see Connect Tasks and Containers by Using a Default Precedence Constraint.
4. Configure the Foreach Loop container. For more information, see .
Conf igure a Foreach Loop Container

Configure a Foreach Loop Container


This procedure describes how to configure a Foreach Loop container, including property expressions at the
enumerator and container levels.
1. In SQL Server Data Tools (SSDT), open the Integration Services project that contains the package you
want.
2. Click the Control Flow tab and double-click the Foreach Loop.
3. In the Foreach Loop Editor dialog box, click General and, optionally, modify the name and description
of the Foreach Loop.
4. Click Collection and select an enumerator type from the Enumerator list.
5. Specify an enumerator and set enumerator options as follows:
To use the Foreach File enumerator, provide the folder that contains the files to enumerate, specify
a filter for the file name and type, and specify whether the fully qualified file name should be
returned. Also, indicate whether to recurse through subfolders for more files.
To use the Foreach Item enumerator, click Columns , and, in the For Each Item Columns dialog
box, click Add to add columns. Select a data type in the Data Type list for each column, and click
OK .
Type values in the columns or select values from lists.

NOTE
To add a new row, click anywhere outside the cell in which you typed.

NOTE
If a value is not compatible with the column data type, the text is highlighted.

To use the Foreach ADO enumerator, select an existing variable or click New variable in the ADO
object source variable list to specify the variable that contains the name of the ADO object to
enumerate, and select an enumeration mode option.
If creating a new variable, set the variable properties in the Add Variable dialog box.
To use the Foreach ADO.NET Schema Rowset enumerator, select an existing ADO.NET connection or
click New connection in the Connection list, and then select a schema.
Optionally, click Set Restrictions and select schema restrictions, select the variable that contains
the restriction value or type the restriction value, and click OK .
To use the Foreach From Variable enumerator, select a variable in the Variable list.
To use the Foreach NodeList enumerator, click DocumentSourceType and select the source type
from the list, and then click DocumentSource. Depending on the value selected for
DocumentSourceType, select a variable or a file connection from the list, create a new variable or
file connection, or type the XML source in the Document Source Editor .
Next, click EnumerationType and select an enumeration type from the list. If EnumerationType is
Navigator, Node, or NodeText , click OuterXPathStringSourceType and select the source type,
and then click OuterXPathString. Depending on the value set for OuterXPathStringSourceType,
select a variable or a file connection from the list, create a new variable or file connection, or type
the string for the outer XML Path Language (XPath) expression.
If EnumerationType is ElementCollection , set OuterXPathStringSourceType and OuterXPathString
as described above. Then, click InnerElementType and select an enumeration type for the inner
elements, and then click InnerXPathStringSourceType. Depending on the value set for
InnerXPathStringSourceType, select a variable or a file connection, create a new variable or file
connection, or type the string for the inner XPath expression.
To use the Foreach SMO enumerator, select an existing ADO.NET connection or click New
connection in the Connection list, and then either type the string to use or click Browse . If you
click Browse , in the Select SMO Enumeration dialog box, select the object type to enumerate
and the enumeration type, and click OK .
6. Optionally, click the browse button (...) in the Expressions text box on the Collection page to create
expressions that update property values. For more information, see Add or Change a Property Expression.

NOTE
The properties listed in the Proper ty list vary by enumerator.

7. Optionally, click Variable Mappings to map object properties to the collection value, and then do the
following things:
a. In the Variables list, select a variable or click <New Variable> to create a new variable.
b. If you add a new variable, set the variable properties in the Add Variable dialog box and click OK .
c. If you use the For Each Item enumerator, you can update the index value in the Index list.

NOTE
The index value indicates which column in the item to map to the variable. Only the For Each Item
enumerator can use an index value other than 0.

8. Optionally, click Expressions and, on the Expressions page, create property expressions for the
properties of the Foreach Loop container. For more information, see Add or Change a Property
Expression.
9. Click OK .

General Page - Foreach Loop Editor


Use the General page of the Foreach Loop Editor dialog box to name and describe a Foreach Loop container
that uses a specified enumerator to repeat a workflow for each member in a collection.
To learn about the Foreach Loop container and how to configure it, see Foreach Loop Container and .
Conf igure a Foreach Loop Container

Options
Name
Provide a unique name for the Foreach Loop container. This name is used as the label in the task icon and in the
logs.

NOTE
Object names must be unique within a package.

Description
Type a description of the Foreach Loop container.

Collection Page - Foreach Loop Editor


Use the Collection page of the Foreach Loop Editor dialog box to specify the enumerator type and configure
the enumerator.
To learn about the Foreach Loop container and how to configure it, see Foreach Loop Container and .
Conf igure a Foreach Loop Container

Static Options
Enumerator
Select the enumerator type from the list. This property has the options listed in the following table:

VA L UE DESC RIP T IO N

Foreach File Enumerator Enumerate files. Selecting this value displays the dynamic
options in the section, Foreach File Enumerator .

Foreach Item Enumerator Enumerate values in an item. Selecting this value displays the
dynamic options in the section, Foreach Item
Enumerator .

Foreach ADO Enumerator Enumerate tables or rows in tables. Selecting this value
displays the dynamic options in the section, Foreach ADO
Enumerator .

Foreach ADO.NET Schema Rowset Enumerator Enumerate a schema. Selecting this value displays the
dynamic options in the section, Foreach ADO.NET
Enumerator .

Foreach From Variable Enumerator Enumerate the value in a variable. Selecting this value
displays the dynamic options in the section, Foreach From
Variable Enumerator .

Foreach Nodelist Enumerator Enumerate nodes in an XML document. Selecting this value
displays the dynamic options in the section, Foreach
Nodelist Enumerator .

Foreach SMO Enumerator Enumerate a SMO object. Selecting this value displays the
dynamic options in the section, Foreach SMO
Enumerator .

Foreach HDFS File Enumerator Enumerate HDFS files in the specified HDFS location.
Selecting this value displays the dynamic options in the
section, Foreach HDFS File Enumerator .

Foreach Azure Blob Enumerator Enumerate blob files in the specified blob location. Selecting
this value displays the dynamic options in the section,
Foreach Azure Blob Enumerator .

Foreach ADLS File Enumerator Enumerate files in the specified Data Lake Store directory.
Selecting this value displays the dynamic options in the
section, Foreach ADLS File Enumerator .

Foreach Data Lake Storage Gen2 File Enumerator Enumerate files in the specified Data Lake Storage Gen2
directory. Selecting this value displays the dynamic options in
the section, Foreach Data Lake Storage Gen2 File
Enumerator .

Expressions
Click or expand Expressions to view the list of existing property expressions. Click the ellipsis button (...) to add
a property expression for an enumerator property, or edit and evaluate an existing property expression.
Related Topics: Integration Services (SSIS) Expressions, Property Expressions Editor, Expression Builder
Enumerator Dynamic Options
Enumerator = Foreach File Enumerator
You use the Foreach File enumerator to enumerate files in a folder. For example, if the Foreach Loop includes an
Execute SQL task, you can use the Foreach File enumerator to enumerate files that contain SQL statements that
the Execute SQL task runs. The enumerator can be configured to include subfolders.
The content of the folders and subfolders that the Foreach File enumerator enumerates might change while the
loop is executing because external processes or tasks in the loop add, rename, or delete files while the loop is
executing. These changes may cause a number of unexpected situations:
If files are deleted, the actions of one task in the Foreach Loop may affect a different set of files than the
files used by subsequent tasks.
If files are renamed and an external process automatically adds files to replace the renamed files, the
actions of tasks in the Foreach Loop may affect the same files twice.
If files are added, it may be difficult to determine for which files the Foreach Loop affected.
Folder
Provide the path of the root folder to enumerate.
Browse
Browse to locate the root folder.
Files
Specify the files to enumerate.

NOTE
Use wildcard characters (*) to specify the files to include in the collection. For example, to include files with names that
contain "abc", use the following filter: *abc*.
When you specify a file name extension, the enumerator also returns files that have the same extension with additional
characters appended. (This is the same behavior as that of the dir command in the operating system, which also compares
8.3 file names for backward compatibility.) This behavior of the enumerator could cause unexpected results. For example,
you want to enumerate only Excel 2003 files, and you specify "*.xls". However, the enumerator also returns Excel 2007 files
because those files have the extension, ".xlsx".
You can use an expression to specify the files to include in a collection, by expanding Expressions on the Collection
page, selecting the FileSpec property, and then clicking the ellipsis button (...) to add the property expression.

Fully qualified
Select to retrieve the fully qualified path of file names. If wildcard characters are specified in the Files option, then
the fully qualified paths that are returned match the filter.
Name only
Select to retrieve only the file names. If wildcard characters are specified in the Files option, then the file names
returned match the filter.
Name and extension
Select to retrieve the file names and their file name extensions. If wildcard characters are specified in the Files
option, then the name and extension of files returned match the filter.
Traverse Subfolders
Select to include the subfolders in the enumeration.
Enumerator = Foreach Item Enumerator
You use the Foreach Item enumerator to enumerate items in a collection. You define the items in the collection by
specifying columns and column values. The columns in a row define an item. For example, an item that specifies
the executables that an Execute Process task runs and the working directory that the task uses has two columns,
one that lists the names of executables and one that lists the working directory. The number of rows determines
the number of times that the loop is repeated. If the table has 10 rows, the loop repeats 10 times.
To update the properties of the Execute Process task, you map variables to item columns by using the index of
the column. The first column defined in the enumerator item has the index value 0, the second column 1, and so
on. The variable values are updated with each repeat of the loop. The Executable and WorkingDirector y
properties of the Execute Process task can then be updated by property expressions that use these variables.
Define the items in the For Each Item collection
Provide a value for each column in the table.

NOTE
A new row is automatically added to the table after you enter values in row columns.

NOTE
If the values provided are not compatible with the column data type, the text is colored red.

Column data type


Lists the data type of the active column.
Remove
Select an item, and then click Remove to remove it from the list.
Columns
Click to configure the data type of the columns in the item.
Related Topics:
For Each I tem Columns Dialog Box UI Ref erence

Enumerator = Foreach ADO Enumerator


You use the Foreach ADO enumerator to enumerate rows or tables in an ADO or ADO.NET object that is stored in
a variable. For example, if the Foreach Loop includes a Script task that writes a dataset to a variable, you can use
the Foreach ADO enumerator to enumerate the rows in the dataset. If the variable contains an ADO.NET dataset,
the enumerator can be configured to enumerate rows in multiple tables or to enumerate tables.
ADO object source variable
Select a user-defined variable in the list, or click <New variable...> to create a new variable.

NOTE
The variable must have the Object data type, otherwise an error occurs.

Related Topics: Integration Services (SSIS) Variables, Add Variable


Rows in first table
Select to enumerate only rows in the first table.
Rows in all tables (ADO.NET dataset only)
Select to enumerate rows in all tables. This option is available only if the objects to enumerate are all members
of the same ADO.NET dataset.
All tables (ADO.NET dataset only)
Select to enumerate tables only.
Enumerator = Foreach ADO.NET Schema Rowset Enumerator
You use the Foreach ADO.NET Schema Rowset enumerator to enumerate a schema for a specified data source.
For example, if the Foreach Loop includes an Execute SQL task, you can use the Foreach ADO.NET Schema
Rowset enumerator to enumerate schemas such as the columns in the AdventureWorks database, and the
Execute SQL task to get the schema permissions.
Connection
Select an ADO.NET connection manager in the list, or click <New connection...> to create a new ADO.NET
connection manager.

IMPORTANT
The ADO.NET connection manager must use a .NET provider for OLE DB. If connecting to SQL Server, the recommended
provider to use is the SQL Server Native Client, listed in the .Net Providers for OleDb section of the Connection
Manager dialog box.

Related Topics: ADO Connection Manager, Configure ADO.NET Connection Manager


Schema
Select the schema to enumerate.
Set Restrictions
Set the restrictions to apply to the specified schema.
Related Topics:
Schema Restrictions Dialog Box

Enumerator = Foreach From Variable Enumerator


You use the Foreach From Variable enumerator to enumerate the enumerable objects in the specified variable.
For example, if the Foreach Loop includes an Execute SQL task that runs a query and stores the result in a
variable, you can use the Foreach From Variable enumerator to enumerate the query results.
Variable
Select a variable in the list, or click <New variable...> to create a new variable.
Related Topics: Integration Services (SSIS) Variables, Add Variable
Enumerator = Foreach NodeList Enumerator
You use the Foreach Nodelist enumerator to enumerate the set of XML nodes that results from applying an
XPath expression to an XML file. For example, if the Foreach Loop includes a Script task, you can use the Foreach
NodeList enumerator to pass a value that meets the XPath expression criteria from the XML file to the Script task.
The XPath expression that applies to the XML file is the outer XPath operation, stored in the OuterXPathString
property. If the XPath enumeration type is set to ElementCollection , the Foreach NodeList enumerator can
apply an inner XPath expression, stored in the InnerXPathString property, to a collection of element.
To learn more about working with XML documents and data, see "Employing XML in the .NET Framework" in the
MSDN Library.
DocumentSourceType
Select the source type of the XML document. This property has the options listed in the following table:

VA L UE DESC RIP T IO N

Direct input Set the source to an XML document.

File connection Select a file that contains the XML document.

Variable Set the source to a variable that contains the XML


document.
DocumentSource
If DocumentSourceType is set to Direct input , provide the XML code, or click the ellipsis (...) button to provide
XML by using the Document Source Edito r dialog box.
If DocumentSourceType is set to File connection , select a File connection manager, or click <New
connection...> to create a new connection manager.
Related Topics: File Connection Manager, File Connection Manager Editor
If DocumentSourceType is set to Variable , select an existing variable, or click <New variable...> to create a
new variable.
Related Topics: Integration Services (SSIS) Variables, Add Variable.
EnumerationType
Select an enumeration type from the list. This property has the options listed in the following table:

VA L UE DESC RIP T IO N

Navigator Enumerate using an XPathNavigator.

Node Enumerate nodes returned by an XPath operation.

NodeText Enumerate text nodes returned by an XPath operation.

ElementCollection Enumerates element nodes returned by an XPath operation.

OuterXPathStringSourceType
Select the source type of the XPath string. This property has the options listed in the following table:

VA L UE DESC RIP T IO N

Direct input Set the source to an XML document.

File connection Select a file that contains the XML document.

Variable Set the source to a variable that contains the XML


document.

OuterXPathString
If OuterXPathStringSourceType is set to Direct input , provide the XPath string.
If OuterXPathStringSourceType is set to File connection , select a File connection manager, or click <New
connection...> to create a new connection manager.
Related Topics: File Connection Manager, File Connection Manager Editor
If OuterXPathStringSourceType is set to Variable , select an existing variable, or click <New variable...> to
create a new variable.
Related Topics: Integration Services (SSIS) Variables, Add Variable.
InnerElementType
If EnumerationType is set to ElementCollection , select the type of inner element in the list.
InnerXPathStringSourceType
Select the source type of the inner XPath string. This property has the options listed in the following table:
VA L UE DESC RIP T IO N

Direct input Set the source to an XML document.

File connection Select a file that contains the XML document.

Variable Set the source to a variable that contains the XML


document.

InnerXPathString
If InnerXPathStringSourceType is set to Direct input , provide the XPath string.
If InnerXPathStringSourceType is set to File connection , select a File connection manager, or click <New
connection...> to create a new connection manager.
Related Topics: File Connection Manager, File Connection Manager Editor
If InnerXPathStringSourceType is set to Variable , select an existing variable, or click <New variable...> to
create a new variable.
Related Topics: Integration Services (SSIS) Variables, Add Variable.
Enumerator = Foreach SMO Enumerator
You use the Foreach SMO enumerator to enumerate SQL Server Management Object (SMO) objects. For
example, if the Foreach Loop includes an Execute SQL task, you can use the Foreach SMO enumerator to
enumerate the tables in the AdventureWorks database and run queries that count the number of rows in each
table.
Connection
Select an existing ADO.NET connection manager, or click <New connection...> to create a new connection
manager.
Related Topics: ADO.NET Connection Manager, Configure ADO.NET Connection Manager
Enumerate
Specify the SMO object to enumerate.
Browse
Select the SMO enumeration.
Related Topics:
Select SMO Enumeration Dialog Box

Enumerator = Foreach HDFS File Enumerator


The Foreach HDFS File Enumerator enables an SSIS package to enumerate HDFS files in the specified HDFS
location. The name of each HDFS file can be stored in a variable and used in tasks inside the Foreach Loop
Container.
Hadoop Connection Manager
Specify an existing Hadoop Connection Manager or create a new one, which points to where the HDFS files are
hosted. For more info, see Hadoop Connection Manager.
Director y Path
Specify the name of the HDFS directory that contains the HDFS files to be enumerated.
File name filter
Specify a name filter to select files with a certain name pattern. For example, MySheet*.xls* includes files such as
MySheet001.xls and MySheetABC.xlsx.
Retrieve file name
Specify the file name type retrieved by SSIS.
Fully qualified name means the full name, which contains the directory path and file name.
Name only means the file name is retrieved without the path.
Traverse subfolders
Specify whether to loop through subfolders recursively.
On the Variable Mappings page of the editor, select or create a variable to store the name of the enumerated
HDFS file.
Enumerator = Foreach Azure Blob Enumerator
The Azure Blob Enumerator enables an SSIS package to enumerate blob files in the specified blob location.
You can store the name of the enumerated blob file in a variable and use it in tasks inside the Foreach Loop
Container.
The Azure Blob Enumerator is a component of the SQL Server Integration Services (SSIS) Feature Pack for
Azure for SQL Server 2016 (13.x). Download the Feature Pack here.
Azure storage connection manager
Select an existing Azure Storage Connection Manager or create a new one that refers to an Azure Storage
Account.
Related Topics: Azure Storage Connection Manager.
Blob container name
Specify the name of the blob container that contains the blob files to be enumerated.
Blob director y
Specify the blob directory that contains the blob files to be enumerated. The blob directory is a virtual
hierarchical structure.
Search recursively
Specify whether to recursively search within sub-directories.
Blob name filter
Specify a name filter to enumerate files with a certain name pattern. For example, MySheet*.xls\* includes files
such as MySheet001.xls and MySheetABC.xlsx.
Blob time range from/to filter
Specify a time range filter. Files modified after TimeRangeFrom and before TimeRangeTo are enumerated.
Enumerator = Foreach ADLS File Enumerator
The ADLS File Enumerator enables an SSIS package to enumerate files in Azure Data Lake Store. You can store
the full path of the enumerated file (prefixed with a slash - / ) in a variable and use the file path in tasks inside
the Foreach Loop Container.
AzureDataLakeConnection
Specifies an Azure Data Lake connection manager, or creates a new one that refers to an ADLS account.
AzureDataLakeDirector y
Specifies the ADLS directory that contains the files to be enumerated.
FileNamePattern
Specifies a file name filter. Only files whose names match the specified pattern are enumerated. The wildcards *
and ? are supported.
SearchRecursively
Specifies whether to search recursively within the specified directory.
Enumerator = Foreach Data Lake Storage Gen2 File Enumerator
The Foreach Data Lake Storage Gen2 File Enumerator enables an SSIS package to enumerate files in Azure
Data Lake Storage Gen2.
AzureStorageConnection
Specifies an existing Azure Storage Connection Manager or creates a new one that references a Data Lake
Storage Gen2 service.
FolderPath
Specifies the path of the folder to enumerate files in.
SearchRecursively
Specifies whether to search recursively within the specified folder.
Notes on Ser vice Principal Permission Configuration
Data Lake Storage Gen2 permission is determined by both RBAC and ACLs. Pay attention that ACLs are
configured using the Object ID (OID) of the service principal for the app registration as detailed here. This is
different from the Application (client) ID that is used with RBAC configuration. When a security principal is
granted RBAC data permissions through a built-in role, or through a custom role, these permissions are
evaluated first upon authorization of a request. If the requested operation is authorized by the security principal's
RBAC assignments, then authorization is immediately resolved and no additional ACL checks are performed.
Alternatively, if the security principal does not have an RBAC assignment, or the request's operation does not
match the assigned permission, then ACL checks are performed to determine if the security principal is
authorized to perform the requested operation. For the enumerator to work, grant at least Execute permission
starting from the root file system, along with Read permission for the target folder. Alternatively, grant at least
the Storage Blob Data Reader role with RBAC. See this article for details.

Variable Mappings Page - Foreach Loop Editor


Use the Variables Mappings page of the Foreach Loop Editor dialog box to map variables to the collection
value. The value of the variable is updated with the collection values on each iteration of the loop.
To learn about how to use the Foreach Loop container in an Integration Services package, see Foreach Loop
Container. To learn about how to configure it, see .
Conf igure a Foreach Loop Container

The Microsoft SQL Server Integration Services tutorial, Creating a Simple ETL Package Tutorial, includes a lesson
that teaches you to add and configure a Foreach Loop.
Options
Variable
Select an existing variable, or click New variable... to create a new variable.

NOTE
After you map a variable, a new row is automatically added to the Variable list.

Related Topics : Integration Services (SSIS) Variables, Add Variable


Index
If using the Foreach Item enumerator, specify the index of the column in the collection value to map to the
variable. For other enumerator types, the index is read-only.
NOTE
The index is 0-based.

Delete
Select a variable, and then click Delete .

Schema Restrictions dialog box (ADO.NET)


Use the Schema Restrictions dialog box to set the schema restrictions to apply to the Foreach ADO.NET
Schema Rowset enumerator.
Options
Restrictions
Select the constraints to apply to the schema.
Variable
Use a variable to define restrictions. Select a variable in the list, or click New variable... to create a new variable.
Related Topics: Integration Services (SSIS) Variables , Add Variable
Text
Provide the text to define restrictions.

For Each Item Columns dialog box


Use the For Each Item Columns dialog box to define the columns in the items that the Foreach Item
enumerator enumerates.
Options
Column
Lists the columns.
Data Type
Select the data type.
Add
Add a new column.
Remove
Select a column, and then click Remove .

Select SMO Enumeration dialog box


Use the Select SMO Enumeration dialog box to specify the SQL Server Management Objects (SMO) object on
the specified instance of SQL Server to enumerate, and to select the enumeration type.
Options
Enumerate
Expand the server and select the SMO object.
Objects
Use the Objects enumeration type.
Prepopulate
Use the Prepopulate option with the Objects enumeration type.
Names
Use the Names enumeration type.
URNs
Use the URNs enumeration type.
Locations
Use the Locations enumeration type. This option is available only for files.

Use property expressions with Foreach Loop containers


Packages can be configured to concurrently run multiple executables. This configuration should be used with
caution when the package includes a Foreach Loop container that implements property expressions.
It is often useful to implement a property expression to set the value of the ConnectionString property of the
connection managers that the Foreach Loop enumerators use. The property expression of ConnectionString is
set by a variable that maps to the collection value of the enumerator and is updated at each iteration of the loop.
To avoid negative consequences of nondeterminative timing of parallel execution of tasks in the loop, the
package should be configured to run only one executable at a time. For example, if a package can run multiple
tasks concurrently, a Foreach Loop container that enumerates files in the folder, retrieves the file names, and then
uses an Execute SQL task to insert the file names into a table may incur write conflicts when two instances of the
Execute SQL task attempt to write at the same time. For more information, see Use Property Expressions in
Packages.

See Also
Control Flow
Integration Services Containers
Loop through Excel Files and Tables with a Foreach
Loop Container
11/2/2020 • 5 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
The procedures in this topic describe how to loop through the Excel workbooks in a folder, or through the tables in
an Excel workbook, by using the Foreach Loop container with the appropriate enumerator.

IMPORTANT
For detailed info about connecting to Excel files, and about limitations and known issues for loading data from or to Excel
files, see Load data from or to Excel with SQL Server Integration Services (SSIS).

To loop through Excel files by using the Foreach File enumerator


1. Create a string variable that will receive the current Excel path and file name on each iteration of the loop. To
avoid validation issues, assign a valid Excel path and file name as the initial value of the variable. (The
sample expression shown later in this procedure uses the variable name, ExcelFile .)
2. Optionally, create another string variable that will hold the value for the Extended Properties argument of
the Excel connection string. This argument contains a series of values that specify the Excel version and
determine whether the first row contains column names, and whether import mode is used. (The sample
expression shown later in this procedure uses the variable name ExtProperties , with an initial value of "
Excel 12.0;HDR=Yes ".)

If you do not use a variable for the Extended Properties argument, then you must add it manually to the
expression that contains the connection string.
3. Add a Foreach Loop container to the Control Flow tab. For information about how to configure the
Foreach Loop Container, see Configure a Foreach Loop Container.
4. On the Collection page of the Foreach Loop Editor , select the Foreach File enumerator, specify the folder
in which the Excel workbooks are located, and specify the file filter (ordinarily *.xlsx).
5. On the Variable Mapping page, map Index 0 to a user-defined string variable that will receive the current
Excel path and file name on each iteration of the loop. (The sample expression shown later in this procedure
uses the variable name ExcelFile .)
6. Close the Foreach Loop Editor .
7. Add an Excel connection manager to the package as described in Add, Delete, or Share a Connection
Manager in a Package. Select an existing Excel workbook file for the connection to avoid validation errors.
IMPORTANT
To avoid validation errors as you configure tasks and data flow components that use this Excel connection manager,
select an existing Excel workbook in the Excel Connection Manager Editor . The connection manager will not use
this workbook at run time after you configure an expression for the ConnectionString property as described in the
following steps. After you create and configure the package, you can clear the value of the ConnectionString
property in the Properties window. However, if you clear this value, the connection string property of the Excel
connection manager is no longer valid until the Foreach Loop runs. Therefore you must set the DelayValidation
property to True on the tasks in which the connection manager is used, or on the package, to avoid validation
errors.
You must also use the default value of False for the RetainSameConnection property of the Excel connection
manager. If you change this value to True , each iteration of the loop will continue to open the first Excel workbook.

8. Select the new Excel connection manager, click the Expressions property in the Properties window, and
then click the ellipsis.
9. In the Proper ty Expressions Editor , select the ConnectionString property, and then click the ellipsis.
10. In the Expression Builder, enter the following expression:

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @[User::ExcelFile] + ";Extended Properties=\"" +


@[User::ExtProperties] + "\""

Note the use of the escape character "\" to escape the inner quotation marks required around the value of
the Extended Properties argument.
The Extended Properties argument is not optional. If you do not use a variable to contain its value, then you
must add it manually to the expression, as in the following example:

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @[User::ExcelFile] + ";Extended Properties=Excel


12.0"

11. Create tasks in the Foreach Loop container that use the Excel connection manager to perform the same
operations on each Excel workbook that matches the specified file location and pattern.

To loop through Excel tables by using the Foreach ADO.NET Schema


Rowset enumerator
1. Create an ADO.NET connection manager that uses the Microsoft ACE OLE DB Provider to connect to an Excel
workbook. On the All page of the Connection Manager dialog box, make sure that you enter the Excel
version - in this case, Excel 12.0 - as the value of the Extended Properties property. For more information,
see Add, Delete, or Share a Connection Manager in a Package.
2. Create a string variable that will receive the name of the current table on each iteration of the loop.
3. Add a Foreach Loop container to the Control Flow tab. For information about how to configure the
Foreach Loop container, see Configure a Foreach Loop Container.
4. On the Collection page of the Foreach Loop Editor , select the Foreach ADO.NET Schema Rowset
enumerator.
5. As the value of Connection , select the ADO.NET connection manager that you created previously.
6. As the value of Schema , select Tables.
NOTE
The list of tables in an Excel workbook includes both worksheets (which have the $ suffix) and named ranges. If you
have to filter the list for only worksheets or only named ranges, you may have to write custom code in a Script task
for this purpose. For more information, see Working with Excel Files with the Script Task.

7. On the Variable Mappings page, map Index 2 to the string variable created earlier to hold the name of the
current table.
8. Close the Foreach Loop Editor .
9. Create tasks in the Foreach Loop container that use the Excel connection manager to perform the same
operations on each Excel table in the specified workbook. If you use a Script Task to examine the
enumerated table name or to work with each table, remember to add the string variable to the
ReadOnlyVariables property of the Script task.

See Also
Load data from or to Excel with SQL Server Integration Services (SSIS)
Configure a Foreach Loop Container
Add or Change a Property Expression
Excel Connection Manager
Excel Source
Excel Destination
Working with Excel Files with the Script Task
For Loop Container
11/2/2020 • 6 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
The For Loop container defines a repeating control flow in a package. The loop implementation is similar to the
For looping structure in programming languages. In each repeat of the loop, the For Loop container evaluates an
expression and repeats its workflow until the expression evaluates to False .
The For Loop container usesthe following elements to define the loop:
An optional initialization expression that assigns values to the loop counters.
An evaluation expression that contains the expression used to test whether the loop should stop or
continue.
An optional iteration expression that increments or decrements the loop counter.
The following diagram shows a For Loop container with a Send Mail task. If the initialization expression is
@Counter = 0 , the evaluation expression is @Counter < 4 , and the iteration expression is @Counter = @Counter + 1 ,
the loop repeats four times and sends four e-mail messages.

The expressions must be valid SQL Server Integration Services expressions.


To create the initialization and assignment expressions, you can use the assignment operator (=). This operator is
not otherwise supported by the Integration Services expression grammar and can only be used by the
initialization and assignment expression types in the For Loop container. Any expression that uses the assignment
operator must have the syntax @Var = <expression> , where Var is a run-time variable and <expression> is an
expression that follows the rules of the SSIS expression syntax. The expression can include the variables, literals,
and any operators and functions that the SSIS expression grammar supports. The expression must evaluate to a
data type that can be cast to the data type of the variable.
A For Loop container can have only one evaluation expression. This means that the For Loop container runs all its
control flow elements the same number of times. Because the For Loop container can include other For Loop
containers, you can build nested loops and implement complex looping in packages.
You can set a transaction property on the For Loop container to define a transaction for a subset of the package
control flow. In this way, you can manage transactions at a more granular level. For example, if a For Loop
container repeats a control flow that updates data in a table multiple times, you can configure the For Loop and its
control flow to use a transaction to ensure that if not all data is updated successfully, no data is updated. For more
information, see Integration Services Transactions.

Add iteration to a control flow with the For Loop container


Integration Services includes the For Loop container, a control flow element that makes it simple to include
looping that conditionally repeats a control flow in a package. For more information, see For Loop Container.
The For Loop container evaluates a condition on each iteration of the loop, and stops when the condition
evaluates to false. The For Loop container includes expressions for initializing the loop, specifying the evaluation
condition that stops execution of the repeating control flow, and assigning a value to an expression that updates
the value against which the evaluation condition is compared. You must provide an evaluation condition, but
initialization and assignment expressions are optional.
The For Loop container provides no functionality; it provides only the structure in which you build the repeatable
control flow. To provide container functionality, you must include at least one task in the For Loop container. For
more information, see Integration Services Tasks.
The For Loop container can include a control flow with multiple tasks, and can include other containers. Adding
tasks and containers to a For Loop container is similar to adding them to a package, except you drag the tasks and
containers to the For Loop container instead of to the package. If the For Loop container includes more than one
task or container, you can connect them using precedence constraints just as you do in a package. For more
information, see Precedence Constraints.

Add a For Loop container in a control flow


1. Add the For Loop container to the package. For more information, see Add or Delete a Task or a Container
in a Control Flow.
2. Add tasks and containers to the For Loop container. For more information, see Add or Delete a Task or a
Container in a Control Flow.
3. Connect tasks and containers in the For Loop container using precedence constraints. For more
information, see Connect Tasks and Containers by Using a Default Precedence Constraint.
4. Configure the For Loop container. For more information, see .
Conf igure a For Loop Container

Configure the For Loop container


This procedure describes how to configure a For Loop container by using the For Loop Editor dialog box.
1. In SQL Server Data Tools (SSDT), double-click the For Loop container to open the For Loop Editor .
2. Optionally, modify the name and description of the For Loop container.
3. Optionally, type an initialization expression in the InitExpression text box.
4. Type an evaluation expression in the EvalExpression text box.

NOTE
The expression must evaluate to a Boolean. When the expression evaluates to false , the loop stops running.

5. Optionally, type an assignment expression in the AssignExpression text box.


6. Optionally, click Expressions and, on the Expressions page, create property expressions for the
properties of the For Loop container. For more information, see Add or Change a Property Expression.
7. Click OK to close the For Loop Editor .

For Loop Editor dialog box


Use the For Loop page of the For Loop Editor dialog box to configure a loop that repeats a workflow until a
specified condition evaluates to false.
To learn about the For Loop container and how to use it in packages, see For Loop Container.
Options
InitExpression
Optionally, provide an expression that initializes values used by the loop.
EvalExpression
Provide an expression to evaluate whether the loop should stop or continue.
AssignExpression
Optionally, provide an expression that changes a condition each time that the loop repeats.
Name
Provide a unique name for the For Loop container. This name is used as the label in the task icon.

NOTE
Object names must be unique within a package.

Description
Provide a description of the For Loop container.

Use expressions with the For Loop container


When you configure the For Loop container by specifying an evaluation condition, initialization value, or
assignment value, you can use either literals or expressions.
The expressions can include variables. The advantage of using variables is that they can be updated at run time,
making the packages more flexible and easier to manage. The maximum length of an expression is 4000
characters.
When you specify a variable in an expression, you must preface the variable name with the at sign (@). For
example, for a variable named Counter , enter @Counter in the expression that the For Loop container uses. If you
include the namespace property on the variable, you must enclose the variable and namespace in brackets. For
example, for a Counter variable in the MyNamespace namespace, type [@MyNamespace::Counter].
The variables that the For Loop container uses must be defined in the scope of the For Loop container or in the
scope of any container that is higher in the package container hierarchy. For example, a For Loop container can
use variables defined in its scope and also variables defined in package scope. For more information, see
Integration Services (SSIS) Variables and Use Variables in Packages.
The SSIS expression grammar provides a complete set of operators and functions for implementing complex
expressions used for evaluation, initialization, or assignment. For more information, see Integration Services
(SSIS) Expressions.

See Also
Control Flow
Integration Services (SSIS) Expressions
Sequence Container
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
The Sequence container defines a control flow that is a subset of the package control flow. Sequence containers
group the package into multiple separate control flows, each containing one or more tasks and containers that run
within the overall package control flow.
The Sequence container can include multiple tasks in addition to other containers. Adding tasks and containers to a
Sequence container is similar to adding them to a package, except you drag the tasks and containers to the
Sequence container instead of to the package container. If the Sequence container includes more than one task or
container, you can connect them using precedence constraints just as you do in a package. For more information,
see Precedence Constraints.
There are many benefits of using a Sequence container:
Disabling groups of tasks to focus package debugging on one subset of the package control flow.
Managing properties on multiple tasks in one location by setting properties on a Sequence container
instead of on the individual tasks.
For example, you can set the Disable property of the Sequence container to True to disable all the tasks
and containers in the Sequence container.
Providing scope for variables that a group of related tasks and containers use.
Grouping many tasks so you can more easily managed them by collapsing and expanding the Sequence
container.
You can also create task groups, which expand and collapse using the Group box. However, the Group box
is a design-time feature that has no properties or run-time behavior. For more information, see Group or
Ungroup Components
Set a transaction attribute on the Sequence container to define a transaction for a subset of the package
control flow. In this way, you can manage transactions at a more granular level.
For example, if a Sequence container includes two related tasks, one task that deletes data in a table and
another task that inserts data into a table, you can configure a transaction to ensure that the delete action is
rolled back if the insert action fails. For more information, see Integration Services Transactions.

Configuration of the Sequence Container


The Sequence container has no custom user interface and you can configure it only in the Proper ties window of
SQL Server Data Tools (SSDT) or programmatically.
For information about programmatically setting these properties, see documentation for the
T:Microsoft.SqlSer ver.Dts.Runtime.Sequence class in the Developer Guide.

Related Tasks
For information about how to set properties of the component in the SQL Server Data Tools (SSDT), see Set the
Properties of a Task or Container.
See Also
Add or Delete a Task or a Container in a Control Flow
Connect Tasks and Containers by Using a Default Precedence Constraint
Integration Services Containers
Task Host Container
11/2/2020 • 2 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
The task host container encapsulates a single task. In SSIS Designer, the task host is not configured separately;
instead, it is configured when you set the properties of the task it encapsulates. For more information about the
tasks that the task host containers encapsulate, see Integration Services Tasks.
This container extends the use of variables and event handlers to the task level. For more information, see
Integration Services (SSIS) Event Handlers and Integration Services (SSIS) Variables.

Configuration of the Task Host


You can set properties in the Proper ties window of SQL Server Data Tools (SSDT) or programmatically.
For information about setting these properties in SQL Server Data Tools (SSDT), see Set the Properties of a Task or
Container.
For information about programmatically setting these properties, see TaskHost.

Related Tasks
Set the Properties of a Task or Container

See Also
Integration Services Containers
Integration Services Tasks
11/2/2020 • 3 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
Tasks are control flow elements that define units of work that are performed in a package control flow. An SQL
Server Integration Services package is made up of one or more tasks. If the package contains more than one
task, they are connected and sequenced in the control flow by precedence constraints.
You can also write custom tasks using a programming language that supports COM, such as Visual Basic, or a
.NET programming language, such as C#.
The SSIS Designer, the graphical tool in SQL Server Integration Services for working with packages, provides
the design surface for creating package control flow, and provides custom editors for configuring tasks. You
can also program the SQL Server Integration Services object model to create packages programmatically.

Types of Tasks
Integration Services includes the following types of tasks.
Data Flow Task
The task that runs data flows to extract data, apply column level transformations, and load data.
Data Preparation Tasks
These tasks do the following processes: copy files and directories; download files and data; run Web methods;
apply operations to XML documents; and profile data for cleansing.
Workflow Tasks
The tasks that communicate with other processes to run packages, run programs or batch files, send and
receive messages between packages, send e-mail messages, read Windows Management Instrumentation
(WMI) data, and watch for WMI events.
SQL Server Tasks
The tasks that access, copy, insert, delete, and modify SQL Server objects and data.
Scripting Tasks
The tasks that extend package functionality by using scripts.
Analysis Services Tasks
The tasks that create, modify, delete, and process Analysis Services objects.
Maintenance Tasks
The tasks that perform administrative functions such as backing up and shrinking SQL Server databases,
rebuilding and reorganizing indexes, and running SQL Server Agent jobs.
Custom Tasks
Additionally, you can write custom tasks using a programming language that supports COM, such as Visual
Basic, or a .NET programming language, such as C#. If you want to access your custom task in the SSIS
Designer, you can create and register a user interface for the task. For more information, see Developing a
Custom Task.

Configuration of Tasks
An Integration Services package can contain a single task, such as an Execute SQL task that deletes records in
a database table when the package runs. However, packages typically contain several tasks, and each task is
set to run within the context of the package control flow. Event handlers, which are workflows that run in
response to run-time events, can also have tasks.
For more information about adding a task to a package using SSIS Designer, see Add or Delete a Task or a
Container in a Control Flow.
For more information about adding a task to a package programmatically, see Adding Tasks Programmatically.
Each task can be configured individually using the custom dialog boxes for each task that SSIS Designer
provides, or the Properties window included in SQL Server Data Tools (SSDT). A package can include multiple
tasks of the same type-for example, six Execute SQL tasks-and each task can be configured differently. For
more information, see Set the Properties of a Task or Container.

Tasks Connections and Groups


If the task contains more than one task, they are connected and sequenced in the control flow by precedence
constraints. For more information, see Precedence Constraints.
Tasks can be grouped together and performed as a single unit of work, or repeated in a loop. For more
information, see Foreach Loop Container, For Loop Container, and Sequence Container.

Related Tasks
Add or Delete a Task or a Container in a Control Flow
Analysis Services Execute DDL Task
11/2/2020 • 5 minutes to read • Edit Online

Applies to: SQL Server (all supported versions) SSIS Integration Runtime in Azure Data Factory
The Analysis Services Execute DDL task runs data definition language (DDL) statements that can create, drop, or
alter mining models and multidimensional objects such as cubes and dimensions. For example, a DDL statement
can create a partition in the Adventure Works cube, or delete a dimension in Adventure Works DW
Multidimensional 2012, the sample Analysis Services database included in SQL Server.
The Analysis Services Execute DDL task uses an Analysis Services connection manager to connect to an instance of
Analysis Services or an Analysis Services project. For more information, see Analysis Services Connection
Manager.
Integration Services includes a number of tasks that perform business intelligence operations, such as processing
analytic objects and running data mining prediction queries.
For more information about related business intelligence tasks, click one of the following topics:
Analysis Services Processing Task
Data Mining Query Task

DDL Statements
The DDL statements are represented as statements in Analysis Services Scripting Language (ASSL), and framed in
an XML for Analysis (XMLA) command.
ASSL is used to define and describe an instance of Analysis Services and the databases and database
objects it contains. For more information, see Analysis Services Scripting Language (ASSL for XMLA).
XMLA is a command language that is used to send action commands, such as Create, Alter, or Process, to an
instance of Analysis Services. For more information, see XML for Analysis (XMLA) Reference.
If the DDL code is stored in a separate file, the Analysis Services Execute DDL task uses a File connection manager
to specify the path of the file. For more information, see File Connection Manager.
Because DDL statements can contain passwords and other sensitive information, a package that contains one or
more Analysis Services Execute DDL tasks should use the package protection level Encr yptAllWithUserKey or
Encr yptAllWithPassword . For more information, see Integration Services (SSIS) Packages.
DDL Examples
The following three DDL statements were generated by scripting objects in the Adventure Works DW
Multidimensional 2012, the Analysis Services database included in SQL Server.
The following DDL statement deletes the Promotion dimension.

<Delete xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>
<DimensionID>Dim Promotion</DimensionID>
</Object>
</Delete>
The following DDL statement processes the Adventure Works DW Multidimensional 2012 cube.

<Batch xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
<Parallel>
<Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance">
<Object>
<DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>
</Object>
<Type>ProcessFull</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>
</Parallel>
</Batch>

The following DDL statement creates the Forecasting mining model.


<Create xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
<ParentObject>
<DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>
<MiningStructureID>Forecasting</MiningStructureID>
</ParentObject>
<ObjectDefinition>
<MiningModel xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance">
<ID>Forecasting</ID>
<Name>Forecasting</Name>
<Algorithm>Microsoft_Time_Series</Algorithm>
<AlgorithmParameters>
<AlgorithmParameter>
<Name>PERIODICITY_HINT</Name>
<Value xsi:type="xsd:string">{12}</Value>
</AlgorithmParameter>
</AlgorithmParameters>
<Columns>
<Column>
<ID>Amount</ID>
<Name>Amount</Name>
<SourceColumnID>Amount</SourceColumnID>
<Usage>Predict</Usage>
</Column>
<Column>
<ID>Model Region</ID>
<Name>Model Region</Name>
<SourceColumnID>Model Region</SourceColumnID>
<Usage>Key</Usage>
</Column>
<Column>
<ID>Quantity</ID>
<Name>Quantity</Name>
<SourceColumnID>Quantity</SourceColumnID>
<Usage>Predict</Usage>
</Column>
<Column>
<ID>Time Index</ID>
<Name>Time Index</Name>
<SourceColumnID>Time Index</SourceColumnID>
<Usage>Key</Usage>
</Column>
</Columns>
<Collation>Latin1_General_CS_AS_KS</Collation>
</MiningModel>
</ObjectDefinition>
</Create>

The following three DDL statements were generated by scripting objects in the Adventure Works DW
Multidimensional 2012, the Analysis Services database included in SQL Server.
The following DDL statement deletes the Promotion dimension.

<Delete xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>
<DimensionID>Dim Promotion</DimensionID>
</Object>
</Delete>

The following DDL statement processes the Adventure Works DW Multidimensional 2012 cube.
<Batch xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
<Parallel>
<Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance">
<Object>
<DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>
</Object>
<Type>ProcessFull</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>
</Parallel>
</Batch>

The following DDL statement creates the Forecasting mining model.

<Create xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
<ParentObject>
<DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>
<MiningStructureID>Forecasting</MiningStructureID>
</ParentObject>
<ObjectDefinition>
<MiningModel xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance">
<ID>Forecasting</ID>
<Name>Forecasting</Name>
<Algorithm>Microsoft_Time_Series</Algorithm>
<AlgorithmParameters>
<AlgorithmParameter>
<Name>PERIODICITY_HINT</Name>
<Value xsi:type="xsd:string">{12}</Value>
</AlgorithmParameter>
</AlgorithmParameters>
<Columns>
<Column>
<ID>Amount</ID>
<Name>Amount</Name>
<SourceColumnID>Amount</SourceColumnID>
<Usage>Predict</Usage>
</Column>
<Column>
<ID>Model Region</ID>
<Name>Model Region</Name>
<SourceColumnID>Model Region</SourceColumnID>
<Usage>Key</Usage>
</Column>
<Column>
<ID>Quantity</ID>
<Name>Quantity</Name>
<SourceColumnID>Quantity</SourceColumnID>
<Usage>Predict</Usage>
</Column>
<Column>
<ID>Time Index</ID>
<Name>Time Index</Name>
<SourceColumnID>Time Index</SourceColumnID>
<Usage>Key</Usage>
</Column>
</Columns>
<Collation>Latin1_General_CS_AS_KS</Collation>
</MiningModel>
</ObjectDefinition>
</Create>
Configuration of the Analysis Services Execute DDL Task
You can set properties through SSIS Designer or programmatically.
For more information about the properties that you can set in SSIS Designer, click the following topic:
Expressions Page
For more information about setting these properties in SSIS Designer, click the following topic:
Set the Properties of a Task or Container

Programmatic Configuration of the Analysis Services Execute DDL Task


For more information about programmatically setting these properties, click the following topic:
ASExecuteDDLTask

Analysis Services Execute DDL Task Editor (General Page)


Use the General