| Lesson 10 | SQL Data Integration |
| Objective | Run the SQL Server Import and Export Wizard. |
SQL data integration is the process of moving, consolidating, and transforming data between systems so that decision-makers and applications always work from a single, consistent source of truth. In SQL Server 2025, Microsoft provides a layered toolkit for this work. At the entry level sits the SQL Server Import and Export Wizard, a point-and-click utility built on top of SQL Server Integration Services (SSIS) that handles straightforward data transfers without requiring any code. For production-grade ETL pipelines, SSIS itself provides a full visual development environment inside Visual Studio, covered in depth two lessons ago. This lesson focuses on the wizard itself: what it is, how it's actually launched on a current installation, and what it's still not built to do.
Background: From DTS to SSIS
Before SQL Server 2005, Microsoft shipped a data-movement tool called Data Transformation Services
(DTS). DTS was useful for its era but was limited in scalability, error handling, and maintainability. SQL
Server 2005 replaced it entirely with SQL Server Integration Services (SSIS), which introduced a proper
package model, a visual data-flow designer, and robust logging. DTS is not available in any currently supported
version of SQL Server. If you encounter documentation that references DTSWizard.exe or DTS
packages, treat it as a historical artifact. The executable name DTSWizard.exe was reused for the
modern Import and Export Wizard as a legacy shortcut, but the tool itself runs entirely on the SSIS engine, the
same rename this course has already covered elsewhere in this module.
The Import and Export Wizard is the fastest path for one-time or occasional data transfers. It supports a wide range of sources and destinations including SQL Server databases, flat files (CSV, TXT), Microsoft Excel, Microsoft Access, Oracle, and any OLE DB or ODBC-compliant data source. The wizard generates an SSIS package behind the scenes and either runs it immediately or saves it for later use. It does not require Visual Studio or any development environment.
Typical use cases include loading a vendor-supplied CSV file into a staging table, exporting a query result to Excel for a business analyst, migrating a table from one SQL Server instance to another, and doing a quick data validation pull between two databases.
Launching the Import and Export WizardA strictly 64-bit architecture and a modular SSMS installer change a few of the practical details for launching the wizard on SQL Server 2025, compared with earlier versions. There are still several standard ways to open it:
Method 1: SQL Server Management Studio (SSMS)One caveat is worth knowing before relying on this path: Microsoft's own announcements show SSIS support returning to SSMS 21 as a preview feature starting with the 21.2.5 point release, not from SSMS 21's initial general availability. On an installation still running an earlier SSMS 21 build, Tasks > Import Data and Tasks > Export Data may be missing or greyed out. The fix is to add the SSIS-related component through the Visual Studio Installer's Modify option, the same mechanism Visual Studio itself uses to add the SQL Server Data Tools workload this course already covered. Where that menu path isn't available at all, either of the next two methods still works regardless of what SSMS itself currently supports.
Method 2: Windows Start Menu
Earlier SQL Server versions offered a 32-bit shortcut alongside the 64-bit one, useful when connecting to an
older 32-bit-only driver. SQL Server 2025 and SSMS 21 no longer ship a 32-bit DTSWizard.exe at all,
consistent with the broader 32-bit deprecation this course has already covered for SSIS. If a transfer reads
from or writes to Excel, Access, or a third-party ODBC or OLE DB source, the matching 64-bit driver, the 64-bit
Microsoft Access Database Engine Redistributable covers Excel and Access specifically, has to be installed on
the machine, or that data source simply won't appear in the wizard's dropdown list.
Run DTSWizard.exe directly. SQL Server 2025 is version 17.0, so its engine folder is numbered
170, following the same pattern as earlier releases:
SQL Server 2025 engine path:
C:\Program Files\Microsoft SQL Server\170\DTS\Binn\DTSWizard.exe
SSMS 21 install path:
C:\Program Files\Microsoft SQL Server Management Studio 21\Release\Common7\IDE\CommonExtensions\Microsoft\SSIS\170\Binn\DTSWizard.exe
The folder number 170 corresponds to SQL Server 2025, following the same numbering this course
already relied on for version-specific paths elsewhere in this module. Earlier versions used 160
(SQL Server 2022), 150 (2019), and 140 (2017). Both paths above launch the same
underlying wizard; which one exists on a given machine depends on whether the engine, SSMS, or both are
installed there.
For a simple CSV or text file import into a new table, SSMS's Tasks > Import Flat File is a separate, lighter wizard built for exactly that narrower case. It skips the OLE DB and ODBC provider selection entirely, so there's no need to configure a 64-bit driver first, at the cost of only working with simple flat files rather than the full range of sources the main wizard supports.
If the Wizard Won't Open at All
SQL Server 2025's initial release shipped with a confirmed bug (tracked as bug 5003709): DTSWizard.exe
wouldn't open if the Database Engine was installed without also checking the SQL Server Integration Services
feature box during setup. Microsoft's Cumulative Update 4 release notes (KB5081495, released April 2026) confirm
the fix. A wizard that refuses to launch at all on a fresh SQL Server 2025 install is worth checking against both
of those, whether SSIS was actually selected during setup, and whether CU4 or later is installed, before
assuming something else is broken.
Regardless of how you launch it, the wizard presents the same sequence of screens:
The wizard covers straightforward transfers well but has real limits. It does not support conditional logic, looping, error redirection to a quarantine table, or incremental loads based on a watermark column. For any of those requirements, you need a full SSIS package developed in Visual Studio with SQL Server Data Tools, which this course has already covered building, deploying, and scheduling in detail.
When data integration requirements grow beyond what the wizard handles, conditional logic, error redirection, a watermark-based incremental load, an SSIS package developed with SQL Server Data Tools is the standard solution, exactly the full six-step process this course already walked through two lessons ago: installing Visual Studio with the SSIS project extension, creating an Integration Services project, setting the target server version, designing the control flow and data flow, and deploying and executing the finished package against the SSISDB catalog. None of that needs repeating here; what's worth adding in this lesson instead is one thing that lesson didn't cover: using this course's own newer T-SQL features directly inside an SSIS data flow's source query.
Using WITH, JSON, and VECTOR in SSIS Data FlowsSQL Server's native JSON functions, the REGEXP family of pattern-matching functions, and the VECTOR and VECTOR_DISTANCE functions for AI similarity search, all covered earlier in this course, aren't limited to queries run directly against the database. They work the same way inside SSIS, through the Execute SQL Task and the OLE DB Source component. An OLE DB Source can issue a query using a Common Table Expression (a WITH clause) to pre-aggregate data before it enters the data flow, reducing the volume of rows that transformation components have to process downstream. A VECTOR_DISTANCE call in a source query can pre-filter rows by semantic similarity before they ever reach a Conditional Split. JSON_VALUE and JSON_QUERY extract scalar values and sub-objects from JSON columns, making it straightforward to flatten semi-structured data into relational rows inside a Derived Column transformation, rather than handling that flattening with custom script code. None of these features require any change to the SSIS package model itself; they're expressed as ordinary T-SQL inside the source query or an Execute SQL Task, and SSIS transports the result set exactly as it would any other rowset.
Suppose a new reporting workstation needs a one-time copy of this course's own Inventory table,
StockNum, Cost, RetailPrice, QtyAvailable, and
LastPriceChangeDate, loaded into a local SQL Server 2025 instance for an analyst to work against
without touching production. Nothing about that job needs the conditional logic or error redirection a full SSIS
package is built for, which makes it exactly the case the wizard exists for:
Inventory, and the
destination connection at the reporting workstation's own instance.Inventory and let the wizard create a matching destination
table automatically, since one doesn't already exist on the reporting workstation.RetailPrice mapping cleanly to the same
numeric type on both sides is the expected, quiet outcome, and the one worth double-checking for before
clicking through past it.
If this same copy needed to happen every morning instead of once, the only change would be on that last screen:
saving the generated SSIS package rather than running it immediately, then scheduling that saved package with
SQL Server Agent exactly the way this course already covered doing for ETL_SalesData_Import. The
wizard doesn't need to be run by hand twice to get there; it only needs to be told, the first time through, that
the result is worth keeping.
Each connection screen in the wizard asks for an authentication method the same way any other SQL Server
connection does: Windows Authentication, SQL Server Authentication, or, on a current installation, Microsoft
Entra ID, the same identity option this course has already covered for SSIS's own connection managers and for
Azure Data Factory's connections back to SQL Server. Running the wizard interactively under a personal Windows
or Entra ID account is the common case for a one-time job like the one above, and it's worth remembering that
whatever account runs the wizard needs read access to every source object being copied and write access,
including CREATE TABLE permission when the destination table doesn't already exist, on the
destination side. A wizard run that fails partway through with a permissions error on the destination is far
more often a missing CREATE TABLE grant than a problem with the transfer itself.
Once a transfer is saved as an SSIS package and scheduled rather than run by hand, the same least-privilege principle this course applied to SQL Server Agent's proxy accounts applies here too: the account the scheduled job actually runs under should hold only the permissions that specific package's connections need, not whatever broader access happened to be available to whoever first ran the wizard interactively.
This lesson and the SSDT lesson it points back to cover the two ends of the same spectrum this module keeps returning to: a one-time or occasional transfer, with no transformation logic beyond what the wizard's own screens expose, is squarely the wizard's job, run once and discarded, or saved as a package and run again later without ever opening Visual Studio. A transfer that needs real conditional logic, error handling, or a watermark-driven incremental load earns the full SSIS package this course already built out in SSDT, scheduled with SQL Server Agent, and, where the workload has moved to Azure, lifted into Azure Data Factory through the two paths the previous lesson covered. The wizard isn't a lesser version of that package; it's the right answer for a narrower, more common job, and knowing which one a given transfer actually needs is as much a part of this skill as knowing how to run either one.
This lesson closes out the module's own learning objectives around the Import and Export Wizard: what it is, how it is actually launched on a current installation, and where its limits sit next to the full SSIS package this course already built elsewhere in this module. One method the legacy version of this page recommended, installing a flat-file extension inside Azure Data Studio as a fallback when SSMS wasn't available, no longer applies at all; Azure Data Studio itself has already been retired, and SSMS, or the standalone wizard launched directly, now covers that case instead. For a transfer that's genuinely a one-time job, or one simple enough to save as a package and rerun without further design work, the wizard remains the fastest tool this module has covered for the job, exactly as it was when SQL Server first introduced it, just launched a little differently now that SQL Server 2025 and SSMS 21 are both strictly 64-bit.