SSIS — SQL Server Integration Services
What it is & where it is used
SSIS (SQL Server Integration Services) is Microsoft's ETL and workflow platform, part of SQL Server. You build packages (.dtsx XML files) visually in Visual Studio, then deploy them to the SSIS Catalog (SSISDB) and run them with SQL Server Agent.
A package has two main designers:
- Control Flow — the workflow: tasks (Execute SQL, Data Flow, File System, Script, Send Mail...) connected by precedence constraints, grouped in containers (Sequence, For Loop, Foreach Loop).
- Data Flow — the row pipeline inside a Data Flow Task: sources → transformations → destinations, processed in memory buffers.
Typical uses: loading data warehouses, migrating data, importing/exporting files, cleansing data, automating database maintenance.
Versions & history
| Release | Notes |
|---|---|
| DTS (SQL Server 7.0 / 2000) | Data Transformation Services — predecessor |
| SSIS 2005 | First SSIS: control flow/data flow split, BIDS (Business Intelligence Development Studio) |
| SSIS 2008 / R2 | Improved Lookup (cache), pipeline performance, C# scripts |
| SSIS 2012 | Project deployment model, SSISDB catalog, parameters, environments, SSDT replaces BIDS, ODBC, Change Data Capture components |
| SSIS 2014–2019 | Incremental improvements; Scale Out (2017); Linux runtime (2017); Azure Feature Pack; packages run in Azure via Azure-SSIS Integration Runtime in Azure Data Factory (2017) |
| SSIS 2022 | Supported with SQL Server 2022; Visual Studio 2022 "SQL Server Integration Services Projects" extension |
| SSIS 2025 | Ships with SQL Server 2025. SSIS is still supported, but Microsoft's strategic cloud direction is Azure Data Factory / Microsoft Fabric Data Factory. Some legacy features are marked deprecated, so check the official "What's new in Integration Services" page before relying on older components |
Design-time tooling has moved from BIDS (2005–2008 R2) → SSDT (2012–2017) → the "SQL Server Integration Services Projects" extension for Visual Studio 2019/2022/2026.
Lifecycle
Package development lifecycle: requirements → design (source-to-target mapping) → develop in Visual Studio (SSIS project) → debug with data viewers/breakpoints → configure parameters → build (.ispac) → deploy to SSISDB (dev → test → prod) → configure environments per server → schedule with SQL Agent → monitor via SSISDB reports → maintain.
Package execution lifecycle:
- Package loads; validation of tasks and connections (can be delayed with
DelayValidation=True). - Parameters/variables are set (from environment references,
/SEToptions, or expressions). - OnPreExecute events fire; Control Flow executes tasks in order determined by precedence constraints (Success/Failure/Completion, optionally with expressions).
- For each Data Flow Task: the pipeline engine allocates buffers, sources read rows, transformations process buffers, destinations write; error outputs redirect bad rows.
- Event handlers (OnError, OnWarning, OnPostExecute, OnTaskFailed...) run when events bubble up.
- Logging writes to SSISDB catalog views (or log providers).
- Checkpoints (if enabled) record completed tasks so a restart resumes after the failure point.
- Package completes with Success/Failure result.
Data flow buffer lifecycle: source fills a buffer (default DefaultBufferMaxRows 10,000 rows / DefaultBufferSize 10 MB) → synchronous transformations modify the same buffer in place → asynchronous transformations copy rows into new buffers → destination writes the buffer → buffer reused.
Tools used to develop
| Tool | Use |
|---|---|
| Visual Studio 2022/2026 + SQL Server Integration Services Projects extension | Design, debug, build packages |
| SSMS → Integration Services Catalogs (SSISDB) | Deploy, configure environments, run, view reports |
| SQL Server Agent | Schedule packages |
dtexec / dtutil / ISDeploymentWizard | Command-line execution, package management, deployment |
| Azure Data Factory + Azure-SSIS IR | Lift-and-shift SSIS packages to Azure |
| BIML (Business Intelligence Markup Language) | Generate many packages from metadata |
| Third-party components | KingswaySoft, COZYROC, Task Factory (extra connectors) |
| Integration Services Deployment Wizard / DevOps tasks | CI/CD of .ispac |