Home
Tour
Download
Purchase
Local Cube Information Center
Samples
Support
About Us
Contact

Microsoft® SQL Server 2000 Data Transformation Services

Table of Contents

Introduction

  • Using DTS in SQL Server 7.0 and SQL Server 2000
  • The Code Samples
  • Keeping Current with Information on DTS

Part I - Getting Started with DTS

Chapter 1 - A Quick Look at DTS

  • A High-Performance Data Pump—and a Whole Lot More
  • Using the DTS Designer to Create Complex Data Transformations
    • The Structure of a DTS Package
    • Creating Connections
    • Creating Tasks
    • Setting the Workflow
  • Saving and Retrieving DTS Packages
    • SQL Server Storage
    • SQL Server Meta Data Services Storage
    • Structured Storage File
    • Visual Basic File
    • Package Versions
  • How to Execute a DTS Package
    • From the DTS Designer
    • From the Wizards
    • From the Enterprise Manager
    • From Visual Basic Code
    • With the OLE Automation System Stored Procedures
    • As a Data Provider
    • Using the DTSRun Command Prompt Utility
    • Using the DTSRun Utility for Windows
    • From Another DTS Package
    • Scheduling a DTS Package
    • The Execution Context for a DTS Package
  • Using the DTS Object Model for Programmatic Control
    • The DTS Object Model
    • Using the DTS Object Model with the Dynamic Properties Task
    • Using the DTS Object Model with Disconnected Edit
    • Programming DTS with VBScript
    • Programming DTS with Visual Basic
    • Programming DTS with VC++
  • DTS Templates
    • Using Templates
    • Creating Templates
  • Using Wizards for Rapid Application Development
    • Copy Database Wizard
    • DTS Import/Export Wizard
  • Practical Uses for DTS
    • Upgrading a Database from Microsoft Access to SQL Server
    • Consolidating Data from Multiple Sources
    • Initial and Periodic Loading of a Data Mart or a Data Warehouse
    • Reporting on Data from Transaction Processing Systems
    • Building an Interface to the Web for a Legacy System
    • Archiving a Database
    • Analyzing Internet Clickstream Data
    • Importing and Exporting with XML
  • Conclusion

Chapter 2 - DTS Enhancements for SQL Server 2000

  • Top Ten New DTS Features
  • The New DTS Tasks
    • Dynamic Properties Task
    • The File Transfer Protocol (FTP) Task
    • The Execute Package Task
    • The Message Queue Task
    • The Parallel Data Pump Task
    • The Analysis Services Processing Task
    • The Data Mining Prediction Query Task
    • The Transfer Databases Task
    • The Transfer Master Stored Procedures Task
    • The Transfer Jobs Task
    • The Transfer Logins Task
    • The Transfer Error Messages Task
  • Transformation Task Enhancements
    • Multiple Phases in the Data Transformation Tasks
    • Package Object Browser When Writing Scripts
  • The New Data Transformations
    • Using Parameters in the Source Query
    • New Error File Options
    • Lookups Can Now Modify Data
  • New Features in Other Tasks
    • Using Input Parameters in the Execute SQL Task
    • Assigning the Result of the Execute SQL Task to Parameters
    • Assigning the Result of the Execute SQL Task to Recordset
    • Package Object Browser for Writing ActiveX Scripts
    • Auto-Generating a Format File in the Bulk Insert Task
  • Other New Features in DTS
    • Copy Database Wizard
    • Save To Visual Basic File
    • Setting Values of the Package Global Variables with DTSRun
    • DTSRunUI—A Windows Interface for DTSRun
    • Package Templates
    • Disconnected Edit
    • Option Explicit for Global Variables
    • Just-In-Time Debugging
    • Turn On Package Cache
    • Executing Individual Steps in the Package Designer
    • DTS Package Logs
  • Other New Features in SQL Server 2000 That Enhance Data Transformation
    • Integration with XML
    • Indexed Views
    • User-Defined Functions
  • Conclusion

Chapter 3 - DTS and the Flow of Data Through the Enterprise

  • Enterprise Data Structure and Data Flow
  • Business Drivers for Enterprise Data Transformation
  • Ways to Use Data
    • Transaction Processing
    • Business Analysis
    • Maintaining History
  • Sources of Data
    • On Line Transaction Processing (OLTP) Systems
    • Web Clickstream Data
    • Data from Outside the Organization
    • The Data Warehouse
    • Results from Business Analysis Systems
  • Meta Data
  • Types of Data Storage
    • Text Files
    • XML
    • Spreadsheets
    • Relational Database Management Systems
    • Multidimensional Database Management Systems (OLAP)
  • Conclusion

Chapter 4 - Using DTS to Move Data into a Data Mart

  • Multidimensional Data Modeling
    • Differences Between Relational Modeling and Multidimensional Modeling
  • The Fact Table
    • Choosing the Measures
    • Choosing the Level of Summarization for the Measures
  • The Dimension Tables
    • The Primary Key in a Dimension Table
    • Levels of the Dimension Hierarchy
    • Attributes of the Dimension
    • The Time Dimension
    • Subordinate Dimension Keys
  • Loading the Star Schema
    • Loading Data into a Staging Area
    • Loading the Dimension Tables
    • Updating the Subordinate Dimension Keys
    • Loading the Fact Table
    • Using the Data
  • Avoiding Updates to Dimension Tables
  • Conclusion

Part II - DTS Connections and the Data Transformation Tasks

Chapter 5 - DTS Connections

  • Creating DTS Connections
  • DTS Connection Properties
    • Properties That Identify a DTS Connection
    • Properties That Determine Access to the Data Source
    • Other Properties
  • Creating Connections for Different OLE DB Providers
    • The SQL Server OLE DB Provider
    • Text File Connections
    • The OLE DB Provider for OLAP Services
    • Other OLE DB Providers
  • Modifying Data Connections Dynamically
  • Performance Issues with DTS Connections
  • Conclusion

Chapter 6 - The Transform Data Task

  • When to Use the Transform Data Task
  • Creating a New Transform Data Task
    • Using the Package Designer
    • Using the DTS Import/Export Wizard
    • Using Code
  • The Description and Name of the Task
  • The Source of a Transform Data Task
    • Text File Source
    • SQL Table, View, or Query for a Relational Database Source
    • MDX Query for a Multidimensional Cube Source
    • Using XML as the Source
    • Using Parameters in a Source Query
    • DataPumpTask Source Properties
  • The Destination of a Transform Data Task
    • Creating a New Destination Table
    • Text File Destination
    • DataPumpTask Destination Properties
  • Mapping Source Columns to Destination Columns
    • Transformation Flags
    • Testing a Transformation
    • The Collections That Implement a Transformation
    • Other Properties of a Transformation
  • The Transformation Types
    • The DateTime String
    • Uppercase Strings, Lowercase Strings, and Copy Column
    • Middle of String and Trim String
    • Read File
    • Write File
    • ActiveX Script
    • Custom Transformation
  • Other Properties of the Transform Data Task
    • Error Handling Properties
    • Data Movement Properties
    • Options for Improving Performance with SQL Server Destinations
  • Column Properties
  • Creating a Transform Data Task in Visual Basic
  • Creating Transformations in Code
    • Choosing a Transformation Type in Code
    • Creating the Transformation and Its Columns
    • Copy Column, Uppercase, and Lowercase Transformations
    • Trim String and Middle of String Transformations
    • Read File and Write File Transformations
    • DateTime Transformations
    • ActiveX Transformations
    • A Sample Application with All the Transformations
  • Using the Transform Data Task as a FreeStanding Icon
  • Conclusion

Chapter 7 - Writing ActiveX Scripts for a Transform Data Task

  • When You Should Use the ActiveX Script Transformation
    • Deciding Between One Task and Many
    • Using the Variety of Transformation Types
  • Transformation ActiveX Scripts Basics
  • The Transformation ActiveX Script Development Environment
  • Choosing a Scripting Language
  • Setting the DTS Transformation Status
    • DTSTransformStat_OK
    • DTSTransformStat_SkipRow
    • DTSTransformStat_SkipFetch
    • DTSTransformStat_SkipInsert
    • DTSTransformStat_DestDataNotSet
    • DTSTransformStat_Info
    • DTSTransformStat_OKInfo
    • DTSTransformStat_SkipRowInfo
    • DTSTransformStat_Error
    • DTSTransformStat_ErrorSkipRow
    • DTSTransformStat_ExceptionRow
    • DTSTransformStat_AbortPump
    • DTSTransformStat_NoMoreRows
  • Creating and Using Local Variables
    • Variable Types
    • Object Variables
    • Using Option Explicit
  • Creating and Using Global Variables
    • Creating Global Variables in the User Interface
    • Creating Global Variables in an ActiveX Script
    • Case Sensitivity of Global Variables and Option Explicit
    • The Lock and Unlock Methods of the GlobalVariable2 Object
  • Creating and Using Lookups
    • Creating Lookups with the User Interface
    • Creating Lookup Objects in an ActiveX Script
    • Using a Lookup in an ActiveX Script
    • Using a Lookup to Modify Data
  • Using ActiveX Scripts or Modifying the Source Query
    • Simple Assignment of Fields
    • String Manipulation
    • Handling Unknown Values
    • Looking Up an Unknown Value
    • Using an Outer Join to Protect Against Missing Data
    • Merging Data from Two Sources with a Full Outer Join
  • Separating Information from One Record into Several Records
  • Combining Information from Several Records into One
  • Conclusion

Chapter 8 - The Data Driven Query Task

  • When to Use the Data Driven Query Task
  • Creating a Data Driven Query Task
  • Transformation Status Constants for the Data Driven Query Task
  • A Data Driven Query Example
  • Creating a Data Driven Query Task in Visual Basic
  • Conclusion

Chapter 9 - The Multiphase Data Pump

  • Enabling the Multiphase Data Pump
  • Programmatic Flow with Multiple Phases
  • Using the Phases
    • Pre Source Phase
    • Row Transform Phase
    • Post Row Transform Phase
    • On Transform Failure Subphase
    • On Insert Failure Subphase
    • On Insert Success Subphase
    • On Batch Complete Phase
    • Post Source Data Phase
    • Pump Complete Phase
  • Creating a COM Object with Visual C++ to Program the Phases
  • Creating a Multiphase Data Pump in Code
    • The TransformPhases Property
    • Setting the Entrance Functions
  • Conclusion

Chapter 10 - The Parallel Data Pump Task

  • Hierarchical Rowsets
  • When to Use the Parallel Data Pump Task
  • The Collections and the Properties of the Parallel Data Pump Task
  • The Transformation Modes
    • Hierarchical Mode
    • Flattened Mode
    • Data Driven Query Mode
    • The TransformationSetOptions Property
  • Creating a Parallel Data Pump Task in Visual Basic
  • A User Interface for the Parallel Data Pump Task
  • Conclusion

Part III - Other Data Movement and Manipulation Tasks

Chapter 11 - The Bulk Insert Task

  • When to Choose the Bulk Insert Task Over the Transform Data Task
  • Creating a Bulk Insert Task
  • The Destination for a Bulk Insert Task
  • The Source for a Bulk Insert
    • Fixed-Length Text Files
    • Delimited Text Files
  • Format Files
    • Format File Structure
    • Generating a Format File
  • Reconciling Differences Between the Source and the Destination
    • Extra Fields in the Data Destination Table
    • Rearranging Fields When Moving from Source to Destination
    • Extra Fields in the Source Text File
  • Other Properties of the Bulk Insert Task
    • Check Constraints
    • Keep Nulls
    • Enable Identity Insert
    • Table Lock
    • Sorted Data
    • Code Page
    • Data File Type
    • Insert Commit Size
    • Maximum Errors
    • Only Copy Selected Rows, Starting with Row, and Stopping at Row
  • Creating a Bulk Insert Task in Visual Basic
  • Conclusion

Chapter 12 - The Execute SQL Task

  • When to Use the Execute SQL Task
  • Creating the Execute SQL Task
  • Writing Queries for Different Database Systems
  • Using Input Parameters in Execute SQL Tasks
  • Using Output Parameters for Row Values
  • Using an Output Parameter for the Rowset
  • Dynamically Modifying the SQL Statement
  • Using the Execute SQL Task to Execute a DTS Package from a Remote Server
  • Creating an Execute SQL Task in Visual Basic
  • Conclusion

Chapter 13 - The Copy SQL Server Objects Task

  • When to Use the Copy SQL Server Objects Task
  • The Source and the Destination
  • Transfer Choices
    • Creating Destination Objects
    • Copying Data
    • Use Collation
    • Copy All Objects
    • Use Default Options
    • Choose a Script File Directory
  • Other Properties of the Copy SQL Server Objects Task
  • Using Methods to Include Objects in the Transfer
  • Creating a Copy SQL Server Objects Task in Visual Basic
  • Conclusion

Chapter 14 - The File Transfer Protocol (FTP) Task

  • When to Use the File Transfer Protocol (FTP) Task
  • Creating the Task and Setting Its Properties
  • Creating the Task in Visual Basic
  • Conclusion

Chapter 15 - The Transfer Databases and Other Transfer Tasks

  • When to Use the Transfer Databases and Other Transfer Tasks
  • Creating the Tasks and Setting Their Properties
    • The Source and the Destination for the Tasks
  • The Transfer Database Task
  • The Transfer Logins Task
  • The Transfer Jobs Task
  • The Transfer Master Stored Procedures Task
  • The Transfer Error Messages Task
  • Creating the Tasks in Visual Basic
  • Conclusion

Part IV - Control Tasks

Chapter 16 - Writing Scripts for an ActiveX Script Task

  • When to Use an ActiveX Script Task
  • Creating an ActiveX Script Task
  • Dynamically Modifying DTS Properties
    • Referencing a Package
    • Referencing a Connection
    • Referencing a Global Variable
    • Referencing Steps, Tasks, and Custom Tasks
    • Referencing the Collections and Objects in a Transform Data Task
    • Referencing the DTS Application Object
    • Objects and Properties That You Cannot Directly Reference
    • Building a Utility to Limit Rows Processed
  • Programming a Loop in a DTS Package
  • Using ADO Recordsets
  • Manipulating Files and Directories
  • Writing Task Log Records
  • Converting VB Code to VBScript
    • Variable Declaration
    • Using CreateObject for Object Variables
    • For Next Loops
    • File Access
    • GoTo and Line Labels
    • Error Handling
    • API Calls
    • Using Code as an Entry Function
    • Using VBScript Code in VB
  • Creating an ActiveX Script Task in Visual Basic
  • Conclusion

Chapter 17 - The Dynamic Properties Task

  • When to Use the Dynamic Properties Task
  • Creating the Task and Assigning Its Properties
    • Making a New Assignment
    • Choosing the Object and Property to Be Assigned
    • Choosing the Source of Data for the Assignment
  • Creating a Dynamic Properties Task in Visual Basic
  • Conclusion

Chapter 18 - The Execute Package Task

  • When to Use the Execute Package Task
  • Creating the Task and Setting Its Properties
  • Setting Values of Global Variables in the Child Package
  • The NestedExecutionLevel Property of the Package
  • Creating and Calling a Utility DTS Package
  • Creating the Task in Visual Basic
  • Conclusion

Chapter 19 - The Message Queue Task

  • When to Use the Message Queue Task
  • Creating the Task and Setting Its Properties
    • Setting the Queue Path
    • Sending Messages
    • Receiving Messages
  • Creating the Task in Visual Basic
  • Conclusion

Chapter 20 - The Send Mail Task

  • When to Use the Send Mail Task
  • Creating the Task and Setting Its Properties
  • The Methods of the Send Mail Task
  • Creating the Task in Visual Basic
  • Conclusion

Chapter 21 - The Analysis Services Tasks

  • When to Use the Analysis Services Tasks
  • Using the Analysis Services Processing Task
  • Using the Data Mining Prediction Query Task
  • Creating the Analysis Services Processing Task in Visual Basic
  • Creating the Data Mining Prediction Query Task in Visual Basic
  • Conclusion

Chapter 22 - The Execute Process Task

  • When to Use the Execute Process Task
    • Bulk Copying from SQL Server to a Text File
    • Executing a Batch File Containing osql and/or bcp Commands
    • Running Other Data Movement or Manipulation Applications
    • Executing DTSRun
  • Creating the Task and Setting Its Properties
    • The Execute Process Task Properties
    • The GetExpandedProcessCommandLine Method of the CreateProcess2 Object
  • Creating the Task in Visual Basic
  • Conclusion

Part V - DTS Packages and Steps

Chapter 23 - The DTS Package and Its Properties

  • Identifying DTS Packages
  • Storing DTS Packages
    • Saving DTS Packages to SQL Server
    • Saving DTS Packages in Meta Data Services
    • Storing DTS Packages in the File System
    • Saving DTS Packages as Visual Basic Files
  • Encrypting DTS Packages
  • Retrieving Information About Packages
    • Package Stored in SQL Server
    • Package Stored in Meta Data Services
    • Package Stored in Files
  • Package Logs and Error Files
    • Logging to SQL Server
  • DTS Packages as Data Sources
    • The Data Provider DTSPackageDSO
    • Setting Up a DTS Package to Be a Data Source
    • Querying a DTS Package with OPENROWSET
    • Registering a DTS Package as a Linked Server
    • Using the DTSPackageDSO Provider to Return XML from a Transform Data Task
  • Other DTS Package Object Properties and Methods
    • CreationDate, CreatorComputerName, and CreatorName
    • PackageType
    • Parent
    • UseOLEDBServiceComponents
    • The GetDTSVersionInfo Method
  • Conclusion

Chapter 24 - Steps and Precedence Constraints

  • Steps, Tasks, and the DTS Package
  • Precedence Constraints
    • The Three Types of Precedence
    • Creating Precedence Constraints in the DTS Package Designer
    • Creating Precedence Constraints in Code
  • The Execution Status of the Step
  • Threads and Priority of Execution
    • Package Level Thread Execution Parameters
    • Step Level Thread Execution Parameters
  • Transactions in DTS Packages
    • Transaction Properties Set at the Package Level
    • Transaction Settings for the Steps
    • Participation in Transactions by Connections and Tasks
    • A Transaction with Steps Executed in Sequence
    • A Transaction with Steps Executed in Parallel
    • Transactions Involving More Than One DTS Package
  • Workflow ActiveX Scripts
    • Script Result Constants
    • Using the Script Results for Looping
    • Step Properties for the Workflow Script
  • Other Step Object Properties
    • StartTime, FinishTime, and ExecutionTime
    • Description
    • Parent
  • Creating a Step Using Visual Basic
  • Conclusion

Chapter 25 - Rapid Development with the Copy Database Wizard and the DTS Import/Export Wizard

  • Two Wizards with Three Levels of Granularity
    • Transferring Databases with the Copy Database Wizard
    • Transferring SQL Server Objects with the Import/Export Wizard
    • Transforming Data with the Import/Export Wizard
  • Calling the Wizards
    • From the Enterprise Manager
    • From the Command Line
    • From Code
  • Using the Copy Database Wizard
    • Choosing the Source and Destination
    • Choosing the Databases and File Locations
    • Choosing Other Objects to Transfer
    • The DTS Package Created by the Copy Database Wizard
  • Creating Connections with the Import/Export Wizard
  • Transferring SQL Server Objects
  • Setting Up Data Transformations
    • Using a Query to Specify the Data to Transfer
    • Copying Table(s) from the Source Database
    • The Destination Tables
    • The Data Transformations
  • Executing, Scheduling, Saving, and Replicating the Package
    • Creating a DTS Package for Replication
    • Scheduling a DTS Package for Later Execution
    • Saving a DTS Package
  • Completing the Import/Export Wizard
  • Conclusion

Chapter 26 - Managing Packages with Visual Basic and Stored Procedures

  • Working with DTS Packages in Visual Basic
    • Installation Requirements
    • Saving a Package to Visual Basic
    • Setting Up the Visual Basic Design Environment
  • The Structure of the Generated DTS Visual Basic Code Module
    • Header Information
    • Declaration of Public Variables
    • Main Function
    • Functions to Create the Tasks
  • Executing a Package from Visual Basic
    • Loading and Saving Packages
    • Handling Events
    • Handling Errors
    • Dynamic Modification of Properties
    • Implementing a Loop in the Data Transformation
  • Executing a Package from Visual Basic Using SQL Namespace
  • Working with Packages Using the OLE Automation Stored Procedures
    • Using sp_OACreate and sp_OADestroy
    • Using sp_OAMethod
    • Using sp_OAGetProperty and sp_OASetProperty
    • Using sp_OAGetErrorInfo
  • Executing a Package with Stored Procedures
  • Conclusion

Chapter 27 - Handling Errors in a Package and Its Transformations

  • Handling Incorrect Data
    • Analyzing the Potential Errors in the Data
    • Raising Errors
    • Correcting Errors
    • Storing Error Records and Information
    • Maintaining Transactional Consistency
    • Informing Administrators of Errors
  • Debugging ActiveX Scripts
    • Using the Script Debugger
    • Exiting the Debugger without Terminating the Enterprise Manager
  • Conclusion

Chapter 28 - High-Performance DTS Packages

  • DTS Transformation Goals
    • The Goal of Rapid Execution
    • Rapid Development
    • Self-Documenting Data Transformations
    • Maintainable Code
  • DTS Task Performance Comparison
    • Loading from a Text File to a SQL Server Database
    • Loading from SQL Server 2000 to SQL Server 2000
  • Performance Statistics for the Transformation Tasks
    • Comparing Different Transformations in the Transform Data Task
    • Comparing Separate and Combined Transformations
    • Using Names or Ordinals in Script Transformation Columns
    • Fetch Buffer Size, Table Lock, and Insert Batch Size
    • Moving Transformation Logic to the Source Query
    • Moving Logic into a Custom Transformation
    • Performance of the Transform Data Task and the Data Driven Query Task
    • Choosing a Scripting Language
  • Use of Parallel Processing to Improve Performance
  • Effect of Indexing on Performance
  • Considering Tools Other Than DTS Because of Performance
    • Using bcp for Exporting from SQL Server to Text Files
    • Using Replication
  • Conclusion

Chapter 29 - Integrating DTS with Meta Data Services

  • Why You Should Use Meta Data Services with DTS
    • Meta Data
    • The Meta Data Services Storage Choice
  • The DTS Browser
    • The Browse Tab
    • The Lineage Tab
    • The Package Tab
  • The Meta Data Browser
    • Finding Information About DTS Objects and Properties
    • Exporting to XML
  • Other Meta Data Services Tools
    • The Repository Database
    • Object Models
    • The Meta Data Services SDK
    • DWSoft's DWGuide—A Third-Party Meta Data Tool
  • Configuring DTS for Column-Level Data Lineage
    • Package Scanning Choices
    • The RepositoryMetadataOptions Property
  • Configuring DTS for Row-Level Data Lineage
    • Lineage Variable Choices
    • The LineageOptions Property
    • Saving the Lineage Variables
  • Accessing Lineage Information Programmatically
  • Conclusion

Part VI - Extending the Power

Chapter 30 - Programming with the DTS Object Model

  • Objects and Extended Objects
  • The DTS Package Object Hierarchy
  • Using Tasks and Custom Tasks
    • Referencing a Task and a Custom Task
    • Creating a New Task
    • Object Names and Programmatic Identifiers for the Custom Tasks
  • Using Collections
  • Using Properties and the Properties Collection
  • The DTS Application Object Hierarchy
  • Documenting the Connections in a DTS Package
  • Conclusion

Chapter 31 - Creating a Custom Task in

  • When You Should Create a New Custom Task
  • Getting Started
  • Implementing the Custom Task Interface
    • The Name Property
    • The Description Property
    • The Properties Collection
    • The Execute Method
  • Implementing the Custom Task User Interface
    • The New Method
    • The Edit Method
    • Initialize
    • Help
  • Events, Errors, and Logs
  • Registering a Custom Task
  • Using a Custom Task in a DTS Package
  • The Find File Task
  • The LocalCubeTask
  • Conclusion

Chapter 32 - Creating a Custom Transformation with VC++

  • Why You Should Create a Custom Transformation
  • The Data Pump Interfaces
  • Preparing the C++ Custom Transformation Development Environment
  • Creating a Custom Transformation
    • Starting the Project
    • Adding a Property to the Custom Transformation
    • Adding Code for the PreValidateSchema Method
    • Adding Code for the ValidateSchema Method
    • Adding Code for the ProcessPhase Method
    • Adding the Project's Error Definitions
    • Registering the Custom Transformation
  • Conclusion

Index





sdg